如何在Ubuntu中将video转换为H.265 / HEVC格式?

我看到H.265 / HEVC编码正在积聚动力,但在某些版本的Ubuntu下,制作H.265video流并不是那么容易。

我应该如何使用x265,以与Ubuntu( 特别是LTS发布Trusty和Xenial) 集成的方式,在Ubuntu下生成HEVCvideo文件?

参考文献:

  1. x265 HEVC编码器 :命令行编码器
  2. x265 :Videolan网站

方法01

您可以安装Internet友好的媒体编码器:

在此处输入图像描述

在终端中运行以下命令:

sudo add-apt-repository -y ppa:upubuntu-com/multimedia sudo apt-get update sudo apt-get install ifme 

现在你可以从Dash打开程序ifme

资源

方法02

按照此处或此处的说明编译程序后,首先必须将video编码为YUV格式:

 avconv -i MyVideo.mp4 MyVideo.yuv 

然后你可以将YUVvideo转换为x265格式:

 ./x265 --input-res 640x360 --fps 24000/100 MyVideo.yuv -o MyVideo.h265 

到目前为止,我系统上的最佳解决方案是:

  1. 对于Trusty Tahr 14.04 LTS:使用最新的FFmpeg和最新的x265,这需要一些编译和后续包装
  2. 对于Xenial Xerus 16.04 LTS:只需运行:

     sudo apt-get install ffmpeg libavcodec-extra 

使用以前的一方法,然后使用以下方法:

 ffmpeg -i input \ -c:v libx265 -preset slow -x265-params crf=22 \ -c:a libmp3lame -b:a 128k \ output.mp4 

请注意,这会创建一个mp3音频流以及一个h.265video流。 要创建aac流,行-c:a libmp3lame -b:a 128k可以替换为以下内容:

 -c:a aac -strict experimental -b:a 128k 

如果您的FFmpeg副本在2015年12月之后发布,原生aac编码器的开发成熟 ,则不需要-strict experimental选项。 请记住,Xenial Xerus 16.04 LTS的存储库FFmpeg 仍然需要此选项。

参考文献:

  • FFmpeg trac:FFmpeg和H.265编码指南
  • FFmpeg git:aacenc:删除实验标志

这个脚本对我有用:

 ffmpeg -i input_file.mpg -pix_fmt yuv420p -f yuv4mpegpipe - |\ x265-10bit --profile main10 --preset slower --crf 20 --input - --y4m -o output_file.mpg