问题描述
我知道这里有很多关于视频编码器的问题,但我的问题更多是关于工作流程/效率。
对于我的日常工作,我需要经常从许多随机格式(通常是大 AVI 、 M4V 等)转换视频,并将它们转换并压缩为我们可以在互联网上上传的高效文件。我必须生成的格式是:
-
WMV(Windows Media Video 9)
-
MP4 (H.264)
我需要为几个用例创建通用模板(转换为 same-as-source、1080p 或 720p ),并能够快速处理这些模板并排队。
关于如何在 Ubuntu 中最好地完成这个过程有什么想法吗?
最佳思路
如果您更喜欢 命令行 ,则可以使用 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 左右。使用仍能为您提供可接受质量的最高值。如果您需要 re-encoding 不切实际的大输入上传到 YouTube 或类似设备,请尝试使用值 17 或 18,因为这些视频服务无论如何都会达到 re-encode。\n -
-preset
:编码速度。较慢的预设可提供更好的压缩(每个文件大小的质量),但速度较慢。使用您有耐心的最慢速度:超快、超快、非常快、更快、快、中(默认)、慢、慢、非常慢。\n -
-movflags +faststart
:在渐进式下载观看的情况下,允许视频在完全下载之前播放。如果您托管视频,则很有用;如果上传到 YouTube 等视频服务,则多余。\n -
-vf scale=-2:720,format=yuv420p
:使用scale和format视频滤波器的filtergraph。高度缩放到 720 像素,并自动选择将保留宽高比的宽度,然后确保像素格式与傻瓜玩家兼容。\n -
-b:a 128k
:音频比特率。如果您的ffmpeg
已过时,则您需要添加-strict experimental
才能使用-c:a aac
。\n
MOV
由于您的 MOV 和 MP4 文件可能包含相同的视频和音频格式,您可以对 MP4 进行编码,并使用 re-muxing(使用 stream copy 模式)而不是 re-encoding 制作 MOV:
ffmpeg -i input.mp4 -codec copy output.mov
WMV
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
您可以下载 Linux build of ffmpeg 或按照 step-by-step ffmpeg compilation guide 来自定义您的构建。
使用 bash “for loop” 执行批量编码
对目录中的所有视频进行编码:
$ 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
另请参阅
次佳思路
尝试 HandBrake 。
HandBrake 是一款用于将视频从几乎任何格式转换为一系列广泛支持的现代编解码器的工具。要安装,只需按键盘上的 Ctrl
+ Alt
+ T
打开终端。打开后,运行以下命令:
sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo apt-get update
sudo apt-get install handbrake