homebrew 安装的 fmpeg 转码速度比较慢?直接编译可以提高速度吗?

2023-10-24 11:35:27 +08:00
 1dian01
1949 次点击
所在节点    FFmpeg
11 条回复
iGmainC
2023-10-24 12:12:56 +08:00
arm 的好像要加参数 -hwaccel videotoolbox
lbp0200
2023-10-24 12:14:24 +08:00
cutecore
2023-10-24 13:44:03 +08:00
使用硬件编码器,如果你有 n 卡,用 h264_nvenc 会比用 libx264 快很多,十几倍。同样 intel 集显 和 amd 显卡又有对应的编码器
RangerWolf
2023-10-24 13:46:30 +08:00
根据我的经验,不会
thevita
2023-10-24 13:55:13 +08:00
是的,楼上说得对,你需要选一个硬件编码器
比如我的电脑上

```

➜ projects ffmpeg -codecs|grep videotoo
ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
built with Apple clang version 14.0.3 (clang-1403.0.22.14.1)
configuration: ****
libavutil 58. 2.100 / 58. 2.100
libavcodec 60. 3.100 / 60. 3.100
libavformat 60. 3.100 / 60. 3.100
libavdevice 60. 1.100 / 60. 1.100
libavfilter 9. 3.100 / 9. 3.100
libswscale 7. 1.100 / 7. 1.100
libswresample 4. 10.100 / 4. 10.100
libpostproc 57. 1.100 / 57. 1.100
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (encoders: libx264 libx264rgb h264_videotoolbox )
DEV.L. hevc H.265 / HEVC (High Efficiency Video Coding) (encoders: libx265 hevc_videotoolbox )
DEVIL. prores Apple ProRes (iCodec Pro) (encoders: prores prores_aw prores_ks prores_videotoolbox )
➜ projects jenv
➜ projects ffmpeg -i sss.wmv -c:v hevc_videotoolbox -b:v 5000k -c:a aac sss.mp4

```

可用的 videotoolbox ( 这应该是 apple 视频编码的 api ) encoder 有 这三个

选 一个就行

也可以按目标编码看

```

➜ projects ffmpeg -codecs|grep hevc
ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
built with Apple clang version 14.0.3 (clang-1403.0.22.14.1)
configuration: ****
.......
DEV.L. hevc H.265 / HEVC (High Efficiency Video Coding) (encoders: libx265 hevc_videotoolbox )

```

一般

*_videotoolbox 是 mac 平台的编码器, *_qsv 是 intel 核显的编码器, *_nvenc, *_cuda 是 nv 的硬件编码器,libx265 是软件编码器
xmap
2023-10-24 14:32:23 +08:00
硬件编码器的速度快,但是效果是弱于软件编码器的。
同等码率下硬件编码器的视频质量更低,同等质量下硬件编码器的体积更大,不可兼得
1dian01
2023-10-24 15:59:22 +08:00
@iGmainC @thevita
同一个视频,同样的操作,软件编码器居然快一点,当然 cpu 占用多一些,是否我姿势不对,求各位大佬科普
硬件编码器状态下:cpu 占用在 30-50%之间,时间 395 秒
软件编码器状态下:cpu 占用 90%以上,时间 326 秒
jim9606
2023-10-25 01:02:56 +08:00
-hwaccel 只影响解码是否使用硬件,不影响编码。

你如果没有指定编码参数(例如 x264/x265 的 crf/bitrate/qp/preset )会有一套比较快但质量一般的参数,例如 x264 默认用 medium preset 。软件编码器上一般存档和流通用途的话推荐 crf 模式,preset 追求质量一般以 slow 为标杆,具体 crf 数值看 ffmpeg wiki 或者编码器的文档,有推荐经验值。

硬件编码器也有类似 preset 的选择,通常都很快,例如 NVIDIA 宣称 Turing 架构的 h.264 nvenc high quality preset 可以达到 libx264 medium preset 的水平。除非直播,一般尽量用最高质量的 preset

ffmpeg -h encoder=编码器名 可以查询可用参数

评测编码质量是个比较麻烦的事,一般是比 psnr/ssim/vmaf 分数,比较少媒体测这个。
yinmin
2023-10-25 01:16:51 +08:00
加参数 -c:v h264_videotoolbox 试试
julyclyde
2023-10-25 13:09:48 +08:00
@thevita 你贴的这一段里边,projects 是命令提示符吗?
感觉没有$符号看起来分不清提示符和用户输入的内容呢
thevita
2023-10-25 17:02:18 +08:00
@julyclyde

sorry, 是 current directory , 我贴出来才发现,,

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/984847

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX