答案1
如果您更喜欢命令行,您可以使用ffmpeg
(或handbrake-cli
)。
MP4
假设您正在使用最新版本的ffmpeg
:
ffmpeg -i input -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k \
-movflags +faststart -vf scale=-2:720,format=yuv420p output.mp4
-crf
:质量。范围是对数 0(无损)到 51(最差质量)。默认值为 23。主观合理范围约为 18-28。使用仍能提供可接受质量的最高值。如果您要重新编码不切实际的大量输入以上传到 YouTube 或类似网站,请尝试使用 17 或 18 的值,因为这些视频服务无论如何都会重新编码。-preset
:编码速度。较慢的预设可提供更好的压缩率(每文件大小的质量),但速度较慢。使用您有耐心的最慢速度:超快、超快、非常快、更快、快、中(默认)、慢、更慢、非常慢。-movflags +faststart
:在渐进式下载观看的情况下,允许视频在完全下载之前播放。如果您托管视频,则很有用,否则,如果上传到 YouTube 等视频服务,则没有必要。-vf scale=-2:720,format=yuv420p
: A过滤图使用规模和格式视频滤镜。高度缩放至 720 像素,并自动选择保留纵横比的宽度,然后确保像素格式与哑播放器兼容。-b:a 128k
:音频比特率。如果您的ffmpeg
已过时,则需要添加-strict experimental
才能使用-c:a aac
。
金属氧化物变阻器
由于你的 MOV 和 MP4 文件可能包含相同的视频和音频格式,你可以对 MP4 进行编码,然后通过重新混合制作 MOV(使用流复制模式)而不是重新编码:
ffmpeg -i input.mp4 -codec copy output.mov
音频视频
FFmpeg 仅支持 WMV 7 和 8。我不知道版本 9 的开源编码器。
$ ffmpeg -encoders | grep -i windows
[...]
V..... = Video
A..... = Audio
------
V..... wmv1 Windows Media Video 7
V..... wmv2 Windows Media Video 8
A..... wmav1 Windows Media Audio 1
A..... wmav2 Windows Media Audio 2
由于我不熟悉这些编码器,我只能给出一个未经测试的例子:
ffmpeg -i input -c:v wmv2 -b:v 1024k -c:a wmav2 -b:a 192k output.wmv
获取 ffmpeg
您可以下载ffmpeg 的 Linux 版本或按照步骤ffmpeg 编译指南定制您的构建。
使用 bash “for 循环”执行批量编码
对目录中的所有视频进行编码:
$ mkdir encoded
$ for f in *.avi; do ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium \
-c:a aac -b:a 128k -movflags +faststart -vf scale=-2:720,format=yuv420p \
"encoded/${f%.avi}.mp4"; done
另请参阅
答案2
尝试手刹。
HandBrake 是一款可将几乎任何格式的视频转换为多种现代、广泛支持的编解码器的工具。要安装,只需按键盘上的Ctrl+ Alt+T打开终端即可。打开后,运行以下命令:
sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo apt-get update
sudo apt-get install handbrake