话说,以前曾经使用ffmpeg来转码,主要是因为这个软件比较普遍,但是忽然有一天,发现使用AMD硬件编码H265,调用hevc_amf编码之后时间轴有问题,无法快进。于是使用handbrake来转码。
Handbrake这个软件无法使用AMD来硬解码,因此都是CPU软件解码然后vce_h265硬件编码过去。
最近ffmpeg更新了,于是update一下,然后试了下新版本,结果新编本修复了之前的AMD硬件编码时间轴问题。
但是,使用ffmpeg无论是否使用硬件解码,转码后的体积都很大。源文件h264编码900多MB,使用ffmpeg转码成h265格式,-qp 0,而且软解码和硬解码之后编码文件的体积相同,都是800多MB,就没小多少。然而,使用Handbrake转码之后竟然200多MB。而且编码速度更快。
最近看到一份资料说,Handbrake也是基于ffmpeg开发的。不知道是不是这样。若是的话,那他是咋优化的。
这个问题比较专业,按说应该到专业的ffmpeg论坛去问。然而一般比较专业的ffmpeg论坛都是国外的,国内没有。另外我知道这个论坛的牛人很多,就在这里问了。
如何知道转码之后文件的体积
-
- 帖子: 197
- 注册时间: 2015-12-23 16:20
- 系统: ubuntu 16.04
-
- 论坛版主
- 帖子: 5237
- 注册时间: 2007-01-14 16:23
Re: 如何知道转码之后文件的体积
我觉得你这么问应该会被骂
同样编码器,体积小了,当然是编码的时候损失了质量,只不过你可能觉察不到,所以你可能要去看下handbrake的设置和你的ffmpeg编码参数
同样编码器,体积小了,当然是编码的时候损失了质量,只不过你可能觉察不到,所以你可能要去看下handbrake的设置和你的ffmpeg编码参数
- astolia
- 论坛版主
- 帖子: 6485
- 注册时间: 2008-09-18 13:11
-
- 帖子: 197
- 注册时间: 2015-12-23 16:20
- 系统: ubuntu 16.04
Re: 如何知道转码之后文件的体积
这个资料我早就知道了。
问题是,
我所写的代码其实都是设置原画质导出,但是Handbrake的体积就是比ffmpeg要小很多。
这个很奇怪呀???
而且,GUI的Handbrake是没有设置原画质进行输出的选项的,需要使用CLI模式或者自己篡改配置文件才能完成。
我刚刚开始的时候使用的是CLI模式,后来发现篡改配置文件之后能够在图形界面显示转码的进度,因为我一次需要转码一个目录的很多的文件。
这个您还是实际找个文件转码试试看好了。
这里说明,我是用的GPU是AMD的,
ffmpeg使用的编码器是,hevc_amf
Handbrake使用的编码器是h265_vce
貌似这两个不是一个东西。
但是据说Handbrake也是基于ffmpeg的。
vce的编码器比较新。
- astolia
- 论坛版主
- 帖子: 6485
- 注册时间: 2008-09-18 13:11
Re: 如何知道转码之后文件的体积
知道了还不去看码率?扯一堆废话干啥呢
-
- 帖子: 197
- 注册时间: 2015-12-23 16:20
- 系统: ubuntu 16.04
Re: 如何知道转码之后文件的体积
我转码的时候两个软件设置都是无损转码,放在Handbrake里面就是 -q -1,放在ffmpeg里面就是 -eq 0,没设置码率,设置的是无损转码。
然而,转码结果,Handbrake比起ffmpeg要小很多。
有人说Handbrake也是基于ffmpeg的,但是我没有查到相关的资料,您知道吗?
然而,Handbrake能够使用最新的AMD vce转码,ffmpeg就只能使用amf。应该不是一个,要不然ffmpeg为啥不能用呢?