如何在Ubuntu中将video转换为H.265 / HEVC格式?
我看到H.265 / HEVC编码正在积聚动力,但在某些版本的Ubuntu下,制作H.265video流并不是那么容易。
我应该如何使用x265,以与Ubuntu( 特别是LTS发布Trusty和Xenial) 集成的方式,在Ubuntu下生成HEVCvideo文件?
参考文献:
- x265 HEVC编码器 :命令行编码器
- 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
到目前为止,我系统上的最佳解决方案是:
- 对于Trusty Tahr 14.04 LTS:使用最新的FFmpeg和最新的x265,这需要一些编译和后续包装
-
对于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