Mac 上面已经安装了 x264 和 x265,但是用 ffmpeg,选 x264 和 x265 做解码器的时候找不到,怎么解决 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
movq

Mac 上面已经安装了 x264 和 x265,但是用 ffmpeg,选 x264 和 x265 做解码器的时候找不到,怎么解决

  •  
  •   movq 2021 年 3 月 31 日 3269 次点击
    这是一个创建于 1850 天前的主题,其中的信息可能已经有所发展或是发生改变。

    电脑上面已经安装了 x264 和 x265

    brew install x264 Warning: x264 r3048 is already installed and up-to-date. To reinstall r3048, run: brew reinstall x264 brew install x265 Warning: x265 3.5 is already installed and up-to-date. To reinstall 3.5, run: brew reinstall x265 

    但是在 ffmpeg 中使用的时候,提示 Unknown decoder 'x265'(最后一行):

    ffmpeg \ -c:v x265 -i ./A.mp4 \ -c:v x265 -i ./B.mp4 \ -filter_complex "[0:v]pad=iw*2:ih[v_wide];[v_wide][1:v]overlay=W/2:0[out_video]" \ -map "[out_video]" \ -c:v x265 \ -crf 18 \ -map 0:a:0 \ -c:a copy -y \ ./C.mp4 ffmpeg version 4.3.2 Copyright (c) 2000-2021 the FFmpeg developers built with Apple clang version 12.0.0 (clang-1200.0.32.21) configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.2-with-options_1 --enable-shared --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libaom --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-demuxer=dash --disable-libjack --disable-indev=jack --enable-opencl --enable-videotoolbox --disable-htmlpages libavutil 56. 51.100 / 56. 51.100 libavcodec 58. 91.100 / 58. 91.100 libavformat 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100 Unknown decoder 'x265' 

    ffmpeg 的安装方式是homebrew-ffmpeg

    我是直接

    brew tap homebrew-ffmpeg/ffmpeg brew install homebrew-ffmpeg/ffmpeg/ffmpeg 

    安装的,github 页面也说了默认已经包括了 x264 和 x265

    fA8YHdtNv6FVkuz


    我最开始的使用用的是苹果自带的 videotoolbox,但是发现那个输出视频的时候画质损耗比较大,就想改用 libx265

    第 1 条附言    2021 年 3 月 31 日
    根据 V 友的回答,现在去掉了-i 之前的-c:v 和 encoder,使用 libx265 作为 encoder,可以正常使用了

    还有一个疑问就是,我之前用 videotoolbox 的时候,有一个硬件加速选项(-hwaccel ),使用的是核显( iris plus 655 ),现在我用 libx265 作为 encoder,发现 CPU 负载几乎满了。

    libx265 是只能调 CPU 吗?能不能也来个硬件加速用核显
    16 条回复    2021-04-01 13:37:57 +08:00
    ynyounuo
        1
    ynyounuo  
       2021 年 3 月 31 日
    libx265
    movq
        2
    movq  
    OP
       2021 年 3 月 31 日 via iPhone
    @ynyounuo 这个也试过,没用
    momocraft
        3
    momocraft  
       2021 年 3 月 31 日
    我用的 https://evermeet.cx/ffmpeg/ 这里下的静态链接版 , 看-encoder 有 libx265 要不要试一下
    minami
        4
    minami  
       2021 年 3 月 31 日
    decoder ? x265 怎么会是 decoder 呢,它是 encoder 啊。转码的话,你要这么用 ffmpeg -i input -c:v libx265 output,会先调用软解解码器,然后再用 x265 编码器进行编码。videotoolbox 你可以这么用,是因为它既可以解码又可以编码
    EridanusSora
        5
    EridanusSora  
       2021 年 3 月 31 日 via Android
    参数顺序问题吧,-c:v 放-i 后面(而且你重复了)
    movq
        6
    movq  
    OP
       2021 年 3 月 31 日
    @minami emmm 我是在网上 copy 的,不太懂视频处理的原理。

    可以先用 videotoolbox 解码然后用 x265 编码吗(不同的库解码的结果是通用的吗?)
    hello2060
        7
    hello2060  
       2021 年 3 月 31 日 via iPhone
    @movq 你已经用 videotoolbox 压过那画质就没有原来好了,你再用 x265 最多也就 videotoolbox 输出这画质
    movq
        8
    movq  
    OP
       2021 年 3 月 31 日
    @hello2060 我的意思是源视频不变,先用 videotoolbox 解码,然后用 x265 来输出,因为我看 videotoolbox 有硬件加速
    jifengg
        9
    jifengg  
       2021 年 3 月 31 日
    使用命令行:
    ffmpeg.exe -v 0 -codecs | grep 265
    查看支持的 codec 里是否有 h265 的。

    我的 win 4.2.1 static 的返回:
    DEV.L. hevc H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc hevc_qsv hevc_cuvid ) (encoders: libx265 nvenc_hevc hevc_amf hevc_nvenc hevc_qsv )

    说明支持 Decode 和 Encode,
    其中 decoders 支持:hevc hevc_qsv hevc_cuvid
    encoders 支持: libx265 nvenc_hevc hevc_amf hevc_nvenc hevc_qsv

    另:-c:v xxx -i xxx 表示这个输入文件的视频解码器用指定的 xxx,但是你的 ffmpeg 不支持,所以提示的是“Unknown decoder”而不是“Unknown encoder”
    ffmpeg 建议用 static 编译的,免去依赖的问题。
    hello2060
        10
    hello2060  
       2021 年 3 月 31 日 via iPhone
    @movq 原视频是什么?一个视频文件吗?那就 ffmpeg 里-i 指定,或者如果他已经是 h.265 的视频,那只要重新转换格式就行了,-vocodec copy 。

    你用 ffmpeg 的话看下有哪些解码器,有没有硬件解码器。

    你用苹果工具解码的话就存成 raw 格式再 ffmepg -c libx265 转
    minami
        11
    minami  
       2021 年 3 月 31 日
    @movq #6 可以用 videotoolbox 解码然后用 x265 编码。解码理论上不应有差别
    jim9606
        12
    jim9606  
       2021 年 3 月 31 日
    因为 -c:v (等价于-vcodec) 用的值是 libx264 和 libx265 。
    ffmpeg 默认动态链接 libx264,brew 应该是自动安装这个依赖的,brew install x264 装的是另一个只能处理 h264 的命令行工具 x264 。
    运行 ffmpeg -codecs 可以看到支持的 encoder/decoder 的名字,如果直接用 h264 或者 hevc 默认就是选择 libx264 和 libx265 。
    你这里-i 前面的-c:v 是多余的

    @hello2060 这里用了 filters,必须重编码的。
    shonnliberty
        13
    shonnliberty  
       2021 年 3 月 31 日
    -crf 参数我一般不写默认 28 质量,越小质量越好但是视觉上 28 已经和原视频差不多,速度参数一般我写 faster 这个速度比较平衡不然就太慢了接受不了,
    音频参数-c:a copy 直接复制原视频,我测试了结果如果用-c:a aac -b:a 128k 文件反而更大一些。
    ffmpeg -i input.mp4 -c:v libx265 -crf 26 -preset faster -c:a aac -b:a 128k output.mp4

    所以我一般用这个
    ffmpeg -i input.mp4 -c:v libx265 -preset faster -c:a copy output.mp4

    参考: https://trac.ffmpeg.org/wiki/Encode/H.265
    movq
        14
    movq  
    OP
       2021 年 3 月 31 日
    @jifengg
    ffmpeg -v 0 -codecs | grep 265
    DEV.L. hevc H.265 / HEVC (High Efficiency Video Coding) (encoders: libx265 hevc_videotoolbox )

    ffmpeg -v 0 -codecs | grep 264
    DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (encoders: libx264 libx264rgb h264_videotoolbox )

    不知道为啥我这里的 h264 和 h265 都只能编码不能解码。。。。
    jifengg
        15
    jifengg  
       2021 年 4 月 1 日
    @movq 具体原因我也不是很懂,还是建议下载静态编译的二进制文件。楼上已经给出链接 https://evermeet.cx/ffmpeg/
    msg7086
        16
    msg7086  
       2021 年 4 月 1 日
    x265 就是用 CPU 的。你要用硬件编码器那就改用硬件编码器。
    「显卡加速」有,但因为显卡并没有比 CPU 快多少,所以实际上并不能加速,也没人用。
    要么就直接用显卡内部的硬件编码器来编码。这种和加速无关,是直接调用专门的电路来编码。
    比如 qsv 或者 nvenc,就是调用核显或者独显内部的电路来编码的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5245 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 61ms UTC 09:05 PVG 17:05 LAX 02:05 JFK 05:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86