使用ffmpeg提取无音频视频片段并修改分辨率,现有命令是否正确?
首先明确:你给出的命令本身可以实现预期需求,不存在语法错误,参数逻辑也匹配你要的「调整分辨率为640x480、提取10-20秒片段、去掉音频流」三个要求。
各参数作用说明
-i myvideo.mp4:指定输入视频文件-vf scale=640:480:调用视频缩放滤镜,强制输出分辨率为640*480,如果原视频不是4:3比例会出现拉伸变形,不需要拉伸的话可以把滤镜参数替换为scale=640:trunc(ow/a/2)*2,会自动计算适配的高度保持原画面比例-ss 00:00:10 -to 00:00:20:指定截取的时间范围,输出片段总长度为10秒-an:禁用音频流,输出文件不会包含音轨output.avi:指定输出格式为AVI的文件
优化建议
现有命令的-ss和-to参数放在输入文件后面,会先解码整个输入视频再做截取,处理大体积视频时速度较慢。可以把时间参数移到输入文件前面,FFmpeg会先跳转到对应时间点再开始解码,处理效率高很多,优化后命令参考:
ffmpeg -ss 00:00:10 -to 00:00:20 -i myvideo.mp4 -vf scale=640:480 -an output.avi
如果需要提升输出文件的兼容性,也可以手动指定视频编码为H.264:
ffmpeg -ss 00:00:10 -to 00:00:20 -i myvideo.mp4 -vf scale=640:480 -c:v libx264 -an output.avi
内容的提问来源于stack exchange,提问作者foc
相关产品推荐
相关产品推荐

