转换视频(批量还是单个)的最快方法?

转换视频(批量还是单个)的最快方法?

我知道这里有很多关于视频编码器的问题,但我的问题更多是关于工作流程/效率。

对于我的日常工作,我需要经常转换多种随机格式的视频(通常是大AVIM4V,等等),然后将它们转换并压缩成我们可以在互联网上上传的高效文件。我必须制作的格式是:

我需要为几个用例创建通用模板(转换为与源相同,1080p, 或者720p) 并能够快速处理这些并排队。

关于如何在 Ubuntu 中最好地完成这个过程有什么想法吗?

答案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

相关内容