ffmpeg:是否有一种简单的方法来编辑视频分辨率,但保留所有音频和字幕
ffmpeg : is there a simple way to edit the video resolution, but keep all audio and subtitles
我想降低视频分辨率 - 通常来自 .mkv
个文件 - 但要保留所有可能的音轨(可能只有一个,可能有多个)和字幕(可能是 none,可能是几个)从原来的。我还想尽可能多地保留原始视频文件中的编码参数(尤其是那些我不理解的)。
我对ffmpeg还是个新手:起初这个想法似乎很简单,但经过多次尝试,似乎比这更复杂。我必须使用 -filter_complex
选项吗?对于我认为很容易转换的东西来说,这似乎有点矫枉过正(或过于复杂),但我可能错了。
我尝试将 -vf scale=-1:720
与 -c copy -map 0
结合使用,这给了我一个错误,我现在明白了,但我无法进行下一步。
有什么方法可以实现吗?只能用 ffmpeg 完成还是我需要一个脚本?
你的尝试应该成功了。例如,
ffmpeg -i input.mp4 -vf scale=-1:720 -map 0 -c:a copy -c:s copy output.mp4
从输入中抓取所有流,通过缩放过滤器传递所有视频流,并复制所有音频和字幕流。
错误是什么?
keep as many encoding parameters
这是它做不到的。当您重新编码时,您可以选择最匹配可能用于输入的参数。
我想降低视频分辨率 - 通常来自 .mkv
个文件 - 但要保留所有可能的音轨(可能只有一个,可能有多个)和字幕(可能是 none,可能是几个)从原来的。我还想尽可能多地保留原始视频文件中的编码参数(尤其是那些我不理解的)。
我对ffmpeg还是个新手:起初这个想法似乎很简单,但经过多次尝试,似乎比这更复杂。我必须使用 -filter_complex
选项吗?对于我认为很容易转换的东西来说,这似乎有点矫枉过正(或过于复杂),但我可能错了。
我尝试将 -vf scale=-1:720
与 -c copy -map 0
结合使用,这给了我一个错误,我现在明白了,但我无法进行下一步。
有什么方法可以实现吗?只能用 ffmpeg 完成还是我需要一个脚本?
你的尝试应该成功了。例如,
ffmpeg -i input.mp4 -vf scale=-1:720 -map 0 -c:a copy -c:s copy output.mp4
从输入中抓取所有流,通过缩放过滤器传递所有视频流,并复制所有音频和字幕流。
错误是什么?
keep as many encoding parameters
这是它做不到的。当您重新编码时,您可以选择最匹配可能用于输入的参数。