跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Mac 上面已经安装了 x264 和 x265,但是用 ffmpeg,选 x264 和 x265 做解码器的时候找不到,怎么解决
未分類
2 4 月 2021

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

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

資深大佬 : movq 0

电脑上面已经安装了 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

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

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

大佬有話說 (16)

  • 資深大佬 : ynyounuo

    libx265

  • 主 資深大佬 : movq

    @ynyounuo 这个也试过,没用

  • 資深大佬 : momocraft

    我用的 https://evermeet.cx/ffmpeg/ 这里下的静态链接版 , 看-encoder 有 libx265 要不要试一下

  • 資深大佬 : minami

    decoder ? x265 怎么会是 decoder 呢,它是 encoder 啊。转码的话,你要这么用 ffmpeg -i input -c:v libx265 output,会先调用软解解码器,然后再用 x265 编码器进行编码。videotoolbox 你可以这么用,是因为它既可以解码又可以编码

  • 資深大佬 : EridanusSora

    参数顺序问题吧,-c:v 放-i 后面(而且你重复了)

  • 主 資深大佬 : movq

    @minami emmm 我是在网上 copy 的,不太懂视频处理的原理。

    可以先用 videotoolbox 解码然后用 x265 编码吗(不同的库解码的结果是通用的吗?)

  • 資深大佬 : hello2060

    @movq 你已经用 videotoolbox 压过那画质就没有原来好了,你再用 x265 最多也就 videotoolbox 输出这画质

  • 主 資深大佬 : movq

    @hello2060 我的意思是源视频不变,先用 videotoolbox 解码,然后用 x265 来输出,因为我看 videotoolbox 有硬件加速

  • 資深大佬 : jifengg

    使用命令行:
    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

    @movq 原视频是什么?一个视频文件吗?那就 ffmpeg 里-i 指定,或者如果他已经是 h.265 的视频,那只要重新转换格式就行了,-vocodec copy 。

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

    你用苹果工具解码的话就存成 raw 格式再 ffmepg -c libx265 转

  • 資深大佬 : minami

    @movq #6 可以用 videotoolbox 解码然后用 x265 编码。解码理论上不应有差别

  • 資深大佬 : jim9606

    因为 -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

    -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

    @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

    @movq 具体原因我也不是很懂,还是建议下载静态编译的二进制文件。上已经给出链接 https://evermeet.cx/ffmpeg/

  • 資深大佬 : msg7086

    x265 就是用 CPU 的。你要用硬件编码器那就改用硬件编码器。
    「显卡加速」有,但因为显卡并没有比 CPU 快多少,所以实际上并不能加速,也没人用。
    要么就直接用显卡内部的硬件编码器来编码。这种和加速无关,是直接调用专门的电路来编码。
    比如 qsv 或者 nvenc,就是调用核显或者独显内部的电路来编码的。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具