0

我创建了一个如下图(我使用 osprey 卡输入直播流)

(图形编辑工具)

Osprey 中的模拟视频----> GDCL MPEG-4 多路复用器----> 文件编写器(.mp4 文件)

文件大小很大;即使是 5 秒的文件也有 80 mb 大小。文件无法播放。

当我使用 ffmpeg -i 在 ffmpeg 中查看文件详细信息时,

它会给出像流 0、缺少强制原子、损坏的标头这样的错误

以下是 ffmpeg 响应。

ffmpeg.exe -i "C:\Documents and Setti ngs\Administrator\Desktop\mp4file\mp4file.mp4" ffmpeg 版本 N-38938-ge01f478 版权所有 (c) 2000-2012 FFmpeg 开发人员于 2012 年 3 月 19 日 23:18 构建: 25 与 gcc 4.6.2 配置:--disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-runtime-cpudetect --enable-avisynth --enable-bzli b --enable-frei0r --enable-libopencore-amrnb --enable-libopencore-amrwb --enable -libfreetype --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-l ibrtmp --enable- libschroedinger --enable-libspeex --enable-libtheora --enable-li bvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-l ibx264 --enable-libxavs --enable -libxvid --enable-zlib libavutil 51. 42.100 / 51. 42.100 libavcodec 54. 12.100 / 54.12.100了libavformat 54. 2.100 / 2.100 54 53 libavdevice 4.100 / 4.100 53 2 libavfilter 65.101 / 2 65.101 libswscale 2. 1.100 / 1.100 2 0 libswresample 7.100 / 0 7.100 libpostproc 52 0.100 / 52 0.100 [ mov,mp4,m4a,3gp,3g2,mj2 @ 003E28E0] 流 0,缺少强制原子,损坏的标头输入 #0,mov,mp4,m4a,3gp,3g2,mj2,来自 'C:\Documents and Settings\Administrator \Desktop\mp4file\mp4file.mp4':元数据:major_brand:mp42 minor_version:0 compatible_brands:mp42isom 持续时间:00:00:00.00,比特率:-2147483 kb/s 流 #0:0(eng):视频:rawvideo (YUY2 /0x32595559), yuyv422, 640x480, 90k tbr, 90k tbn, 90k tbc 元数据: handler_name : 必须至少指定一个输出文件2.100 / 54. 2.100 libavdevice 53. 4.100 / 53. 4.100 libavfilter 2. 65.101 / 2. 65.101 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 7.100 / 0. 7.100 libpostproc 52. 0.100 / mp4, 010.0.52 m4a,3gp,3g2,mj2 @ 003E28E0] 流 0,缺少强制原子,损坏的标头输入 #0,mov,mp4,m4a,3gp,3g2,mj2,来自 'C:\Documents and Settings\Administrator\Desktop\mp4file \mp4file.mp4':元数据:major_brand:mp42 minor_version:0 compatible_brands:mp42isom 持续时间:00:00:00.00,比特率:-2147483 kb/s 流 #0:0(eng):视频:rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 90k tbr, 90k tbn, 90k tbc 元数据: handler_name : 必须至少指定一个输出文件2.100 / 54. 2.100 libavdevice 53. 4.100 / 53. 4.100 libavfilter 2. 65.101 / 2. 65.101 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 7.100 / 0. 7.100 libpostproc 52. 0.100 / mp4, 010.0.52 m4a,3gp,3g2,mj2 @ 003E28E0] 流 0,缺少强制原子,损坏的标头输入 #0,mov,mp4,m4a,3gp,3g2,mj2,来自 'C:\Documents and Settings\Administrator\Desktop\mp4file \mp4file.mp4':元数据:major_brand:mp42 minor_version:0 compatible_brands:mp42isom 持续时间:00:00:00.00,比特率:-2147483 kb/s 流 #0:0(eng):视频:rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 90k tbr, 90k tbn, 90k tbc 元数据: handler_name : 必须至少指定一个输出文件100 libavfilter 2. 65.101 / 2. 65.101 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 7.100 / 0. 7.100 libpostproc 52. 0.100 / 52. 0.100 [mov,mp4,m4a,3gp,3g2,mj2 @ 003E28E ,缺少强制性原子,损坏的标头输入#0,mov,mp4,m4a,3gp,3g2,mj2,来自'C:\ Documents and Settings\Administrator \Desktop\mp4file\mp4file.mp4':元数据:major_brand:mp42 minor_version : 0 compatible_brands: mp42isom 持续时间: 00:00:00.00, 比特率: -2147483 kb/s Stream #0:0(eng): Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 90k tbr, 90k tbn, 90k tbc元数据:handler_name:必须至少指定一个输出文件100 libavfilter 2. 65.101 / 2. 65.101 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 7.100 / 0. 7.100 libpostproc 52. 0.100 / 52. 0.100 [mov,mp4,m4a,3gp,3g2,mj2 @ 003E28E ,缺少强制性原子,损坏的标头输入#0,mov,mp4,m4a,3gp,3g2,mj2,来自'C:\ Documents and Settings\Administrator \Desktop\mp4file\mp4file.mp4':元数据:major_brand:mp42 minor_version : 0 compatible_brands: mp42isom 持续时间: 00:00:00.00, 比特率: -2147483 kb/s Stream #0:0(eng): Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 90k tbr, 90k tbn, 90k tbc元数据:handler_name:必须至少指定一个输出文件7.100 libpostproc 52. 0.100 / 52. 0.100 [mov,mp4,m4a,3gp,3g2,mj2 @ 003E28E0] 流 0,缺少强制原子,损坏的标头输入 #0,mov,mp4,m4a,3gp,3g2,mj2,来自“C:\Documents and Settings\Administrator\Desktop\mp4file\mp4file.mp4”:元数据:major_brand:mp42 minor_version:0 compatible_brands:mp42isom 持续时间:00:00:00.00,比特率:-2147483 kb/s 流#0: 0(eng): Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 90k tbr, 90k tbn, 90k tbc 元数据: handler_name : 必须指定至少一个输出文件7.100 libpostproc 52. 0.100 / 52. 0.100 [mov,mp4,m4a,3gp,3g2,mj2 @ 003E28E0] 流 0,缺少强制原子,损坏的标头输入 #0,mov,mp4,m4a,3gp,3g2,mj2,来自“C:\Documents and Settings\Administrator\Desktop\mp4file\mp4file.mp4”:元数据:major_brand:mp42 minor_version:0 compatible_brands:mp42isom 持续时间:00:00:00.00,比特率:-2147483 kb/s 流#0: 0(eng): Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 90k tbr, 90k tbn, 90k tbc 元数据: handler_name : 必须指定至少一个输出文件\Documents and Settings\Administrator \Desktop\mp4file\mp4file.mp4':元数据:major_brand:mp42 minor_version:0 compatible_brands:mp42isom 持续时间:00:00:00.00,比特率:-2147483 kb/s Stream #0:0(eng) : 视频: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 90k tbr, 90k tbn, 90k tbc 元数据: handler_name : 必须至少指定一个输出文件\Documents and Settings\Administrator \Desktop\mp4file\mp4file.mp4':元数据:major_brand:mp42 minor_version:0 compatible_brands:mp42isom 持续时间:00:00:00.00,比特率:-2147483 kb/s Stream #0:0(eng) : 视频: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 90k tbr, 90k tbn, 90k tbc 元数据: handler_name : 必须至少指定一个输出文件

我需要进行任何 gdcl 过滤器设置吗?请帮我解决问题。

4

1 回答 1

0

多路复用器用于将不同的流多路复用到一个文件中。大多数情况下,这将是音频和视频流。但是多路复用器不编码音频或视频。如果需要 h.264 视频,则需要将 h264 编码器添加到图形中。例如,您可以为此使用ffdshow

有关mp4 文件格式H.264 视频压缩格式mpeg4 的其他部分,另请参阅 wikipedia 。

如果您真的想创建一个未压缩的 .mp4 文件,请查看官方支持的 .mp4 格式。未压缩的视频可能不受官方支持。但即使是这样,你也需要多路复用器作为播放器的支持。在他的网站上,Geraint Davies 添加了以下注释

注意:mux 和 demux 过滤器都需要为每种要支持的媒体类型添加少量代码。到目前为止,我只添加了一组有限的类型。如果需要其他类型接受,请直接联系。 可能只需要几行代码。

对未压缩的视频使用MXF可能会更好。

于 2012-04-20T17:47:49.980 回答