如何通过ffmpeg OSX使用hevc / h265编解码器对视频进行编码

时间:2018-10-30 12:11:05

标签: macos ffmpeg video-toolbox

我尝试使用hevc编解码器对视频进行编码

./ffmpeg -i 1234.mp4   -vcodec hevc_videotoolbox -vb 1000k  -acodec aac -ab 192k   -sn  2.mp4

错误:

[hevc_videotoolbox @ 0x7fc681813a00] Error: cannot create compression session: -12908
[hevc_videotoolbox @ 0x7fc681813a00] Try -allow_sw 1. The hardware encoder may be busy, or not supported.
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

我尝试更改比特率,宽度,高度,错误仍然存​​在 macbook air 2015是否可以对视频进行编码? videotoolbox不能使用我的旧GPU及其在最新的Macbook上使用吗?

1 个答案:

答案 0 :(得分:1)

我最近有一个相同的问题,我在寻找答案时发现了这个问题:

enter image description here 此pdf文件的屏幕截图:enter link description here

可能旧的Mac本身不支持HEVC硬件加速,我没有新的Mac来测试ffmpeg是否与之相关,也许某人的Mac具有第六代CPU可以帮助您解决问题。

编辑: 我在最新的2018 mbp上测试了以下代码,并且可以正常工作。

awk '
FNR==NR{ open block process matching line in file 1 and file2
 a[$4];  # use as a key with unique id
 chr[$4]=$1;  # store $1 value in chr
 min[$4]=$2;  # store $2 value in min
 max[$4]=$3;  # store $3 value in max
  next  # process next line
}  # close block
{  # open block
 split($4,array,"_");  # spilt $4 on underscore
 print $0,(array[1] in a) &&  ($2<=min[array[1]] && $2<=max[array[1] &&  $1=chr[array[1]])?"exon":"intron"
}' file1 OFS="\t" file2 > output  # close block, mention input with field separators and output

hevc_videotoolbox编码的视频#1的大小小于原始测试文件(h264),但大于libx265编码的视频#2(使用默认参数)。

出乎意料的是,视频#1的质量比原始质量差很多,而视频#2的质量似乎未受影响。此外,hevc_videotoolbox不支持-crf选项,因此即使它确实很慢,我仍然坚持使用libx265。