FFmpeg转MP4为DNxHD供Avid使用时无音频或视频静止问题求助
问题根因
第一个命令无音频的原因
你强制指定了-f rawvideo输出格式,裸视频流格式本身不支持封装音频轨道,无论你怎么配置音频编码参数,最终输出的文件都只会包含视频数据,自然没有音频。
第二个命令视频卡第一帧的原因
核心是-vsync drop参数导致的:
- 该参数会直接丢弃所有视频帧的时间戳(PTS/DTS),从日志里的
Timestamps are unset in a packet for stream 0、Encoder did not produce proper pts报错也可以验证 - 播放器读取没有时间戳的视频流时,会默认所有帧的时间戳都是0,因此只会显示第一帧,后续帧不会正常刷新播放
另外你当前的配置还有两个不符合Avid Media Composer导入要求的问题:
- 封装格式用了MOV,Avid对DNxHD的原生支持格式是MXF
- 音频编码用了AAC,Avid要求DNxHD MXF的音轨必须是PCM无损编码,否则导入后可能无法识别音频
可直接使用的转码命令
ffmpeg -y -i Test_fix.mp4 -c:v dnxhd -b:v 36M -s 1920x1080 -vf colormatrix=bt601:bt709 -c:a pcm_s16le -ar 48000 -ac 2 output.mxf
参数说明:
- 移除了多余的
-r 24重复指定、-vsync drop、-threads 2(ffmpeg会自动适配最优线程数,不需要手动指定) - 音频编码改为Avid兼容的16位PCM小端编码,采样率保持源文件的48kHz、立体声配置
- 封装格式直接用MXF,导出后可以直接导入Avid Media Composer使用
内容的提问来源于stack exchange,提问作者Zak44
相关产品推荐
相关产品推荐

