Answers:
由于您使用了ffmpeg标签,因此我将使用它作为答案。
ffmpeg -i input.wmv -s hd720 -c:v libx264 -crf 23 -c:a aac -strict -2 output.mp4
通过指定其他CRF参数来更改视频质量。有关更多信息,请参见x264编码指南。
ffmpeg -i input.avi -vf scale=-1:720 output.avi
自从2012年对此问题的最初公认答案以来,时间已经过去了一点。使用FFmpeg的“ scale”视频过滤器会更好。
我在下面给出一个使用此过滤器的示例,该过滤器还可以根据您的要求简单地复制音轨:
ffmpeg -i input.wmv \
-c:v libx264 -preset veryslow -tune film -crf 22 -vf scale=-2:720 \
-c:a copy \
output.mp4
-tune film
上面给出的选项可以省略,也可以-tune animation
根据所使用的视频片段的类型进行尝试。
如果你决定,你会想转码音频一个不错的选择是使用外部库libfdk_aac如下:
ffmpeg -i input.wmv \
-c:v libx264 -preset veryslow -tune film -crf 22 -vf scale=-2:720 \
-c:a libfdk_aac -b:a 128k \
output.mp4
当然,这就是我要缩放的wmv文件所执行的操作,您会发现结果超出可接受范围...
如果您想保持所有音轨,字幕等完整无缺,则应使用以下格式:
ffmpeg -i input.mkv \
-map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4 \
-vf scale=-1:720 -c:v libx264 -crf 18 -preset veryslow \
-c:a:0 copy -c:a:1 copy -c:s copy \
output.mkv
在这种情况下,input.mkv文件具有两个音轨和两个字幕。您可以一一指定所有音轨(或字幕,视频等),也可以将其指定为一个实体(如我为字幕指定的那样)。
希望能帮助到你...
-map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4
相反,您可以简单地指定-map 0
。这将自动选择输入0中的所有流。类似于音频复制编解码器。您需要指定的唯一编解码器选项是 -c:copy -c:v libx264
。这意味着:“将所有流编解码器设置为要复制,但应转码为x264的视频除外。”
ffmpeg -i input.mkv -map 0 -vf scale=-1:720 -c:copy -c:v libx264 -crf 18 -preset veryslow output.mkv