我正在使用FFMPEG库,以muxH.264和AAC帧到Matroska (.mkv)文件。我可以使用命令行和C程序来做到这一点。
现在,我不想将matroska数据写入文件中,而是直接将这些muxed数据写到套接字或管道上。我的实际目标是编写一个C程序,将多个数据发送到套接字,然后服务器将接收这些被屏蔽的数据。
我试过使用tcp协议。他们正在使用matroska格式。因此,我的C程序能够成功地通过套接字发送多个数据,而服务器能够接收到这些被屏蔽的数据。
但是,当我对接收到的文件应用ff探针命令时,我得到的是工期和比特率字段N/A,当我试图使用vlc播放该文件时,我无法查找该文件并获得垃圾持续时间。
在of探头的输出下面。
ffprobe version N-65784-g50a35f0 Copyright (c) 2007-2014 the FFmpeg developers
built on Aug 25 2014 12:31:36 with gcc 4.7 (Ubuntu/Linaro 4.7.3-1ubuntu1)
configuration:
libavutil 54. 5.100 / 54. 5.100
libavcodec 56. 0.101 / 56. 0.101
libavformat 56. 1.100 / 56. 1.100
libavdevice 56. 0.100 / 56. 0.100
libavfilter 5. 0.101 / 5. 0.101
libswscale 3. 0.100 / 3. 0.100
libswresample 1. 1.100 / 1. 1.100
Input #0, matroska,webm, from 'Array.mkv':
Metadata:
ENCODER : Lavf54.29.104
Duration: N/A, start: 1412858260.281000, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg), 2000x1496 [SAR 1:1 DAR 250:187], 27 fps, 27 tbr, 1k tbn, 1k tbc (default)
Stream #0:1: Video: mjpeg, yuvj422p(pc, bt470bg), 2000x1496 [SAR 1:1 DAR 250:187], 27 fps, 27 tbr, 1k tbn, 1k tbc (default)
Stream #0:2: Video: mjpeg, yuvj422p(pc, bt470bg), 2000x1496 [SAR 1:1 DAR 250:187], 27 fps, 27 tbr, 1k tbn, 1k tbc (default)
Stream #0:3: Video: mjpeg, yuvj422p(pc, bt470bg), 2000x1496 [SAR 1:1 DAR 250:187], 27 fps, 27 tbr, 1k tbn, 1k tbc (default)正如您所看到的,工期和比特率字段显示了N/A。然而,我得到了正确的startTime。
有什么帮助或建议吗?提前谢谢你。
发布于 2014-10-22 07:45:08
这不太可能奏效,因为:
发布于 2014-10-22 08:59:18
对于mp4,它的容器需要在文件开始时写入其他信息。这件事不能用网络套接字来完成。所以我们不能在这里使用MP4容器。
https://stackoverflow.com/questions/26501015
复制相似问题