使用FFmpeg转换DVD至MP4时出现警告且无声音的问题求助
使用FFmpeg转换DVD至MP4时出现警告且无声音的问题求助
我来帮你搞定这两个问题——警告提示和无音频的问题,一步步来:
一、解决警告提示的问题
你遇到的警告是因为使用QSV硬件加速时,没有明确指定必要的硬件设备参数,FFmpeg自动启用了兼容旧命令的默认值,现在我们调整命令,把这些参数明确写出来就能消除警告:
原来的命令依赖FFmpeg的默认兼容行为,修改后的命令会明确初始化QSV硬件设备并指定加速输出格式:
ffmpeg -init_hw_device qsv=hw -hwaccel qsv -hwaccel_output_format qsv -i VTS_01_1.vob -vf yadif=hw_upload -c:v h264_qsv -global_quality 15 -preset medium -c:a aac -b:a 256k VTS_01_0.mp4
关键参数说明:
-init_hw_device qsv=hw:明确初始化QSV硬件设备,给设备命名为hw,替代默认的自动设备选择-hwaccel_output_format qsv:指定硬件加速后的输出格式为QSV,避免FFmpeg自动推断的兼容警告-vf yadif=hw_upload:把视频帧上传到硬件后再做去隔行处理,配合QSV加速能保持效率
这样修改后,那两条 deprecation 警告就会消失了。
二、解决无声音的问题
从你的输入文件信息来看,音频流是Stream #0:2[0xa0],但原来的命令可能因为输入里有一个dvd_nav_packet数据流(Stream #0:0),导致FFmpeg没有正确选中音频流。我们可以通过-map参数明确指定要包含的视频和音频流:
整合两个问题的完整解决命令:
ffmpeg -init_hw_device qsv=hw -hwaccel qsv -hwaccel_output_format qsv -i VTS_01_1.vob -vf yadif=hw_upload -c:v h264_qsv -global_quality 15 -preset medium -c:a aac -b:a 256k -map 0:v -map 0:a VTS_01_0.mp4
-map 0:v:强制选择第0个输入文件的所有视频流-map 0:a:强制选择第0个输入文件的所有音频流
这样FFmpeg就能正确识别并转换你的pcm_dvd音频为aac格式,嵌入到最终的MP4文件里了。如果你想更精准,也可以直接指定音频流索引-map 0:2,不过0:a的写法更通用,能自动适配所有音频流场景。
备注:内容来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

