关于ffmpeg 的一些分享

一些特定场景下的问题分析(速度质的变化)

执行的ffmpeg转码任务时执行过慢

大家有没有遇到过一个问题 我在自己的mac电脑上进行开发测试的时候发现处理一套素材转码的时候速度还可以接受 但是一到服务器上转码的效率就变得奇慢无比 是不是以为是服务器性能配置的问题 接下来我们来分析一下具体原因

  1. 首先我们保证了代码的一致性所以排除了代码逻辑问题
  2. 我们保证的服务器与本地机器上ffmpeg的版本一直的问题

那么问题到底出现在哪里呢
揭晓答案:

[libx264 @ 0x7f9638814600] using SAR=1/1
[libx264 @ 0x7f9638814600] using cpu capabilities: none
[libx264 @ 0x7f9638814600] profile High, level 4.0, 4:2:0, 8-bit

在上面的第二行是因为我们在服务器上变异x264相关的动态库时候出现了错误,所以导致我们命令中使用x264时使用不到cpu的加速性能 导致我们执行的速度太慢 那么我们该如解决呢

  1. 首先我们需要从新编译一下x264的动态库 需要注意的是./configure 的时候 提示 disable nasm 这个时候 千万不要disable
  2. 然后我们重新编译ffmpeg ./configure --enable-gpl --enable-encoder=libx264 --enable-libx264 --prefix=/usr/local/ffmpeg --enable-debug --enable-static --enable-libass --enable-fontconfig --extra-libs=-ldl --enable-libmp3lame

注意这个时候可能会有一些报错信息出来 比如 braries: libx264.so.138: cannot open shared object file: No such file or directory 或者是其他的so找不到 这个时候我们需要这么处理呢

  1. 查询我们这个x264或者报错的动态库所在的位置find / -name 文件名
  2. 添加环境变量export PKG_CONFIG_PATH=查找到的路径
  3. 如果第二种没有解决你的问题 那么 vi /etc/ld.so.conf 然后添加所在路径到文件内
    例如:
include ld.so.conf.d/*.conf
/usr/local/x264/lib #查找到的路径 

执行wq保存 最后别忘了执行 ldconfig

这样一套操作下来 按照我自己的亲身经历来看 速度最少是快了 7 8 倍左右 一点没有夸张

一些开发过程的优化

在我们开发的过程中为了方便我们的开发 经常会把ffmpeg的使用变成一条线型的操作 举个例子

ffmpeg  -i  test.mp4  -vf fade=type=in:0:30  1.mp4 
ffmpeg  -i 1.mp4  -vf fade=type=out:29:1  out.mp4 

但是这样是不对的 这样会把 整体的转码任务拉长 我们需要做的是
将我我们-vf 内的命令进行拼接 中间采用,进行分割 形成如下

ffmpeg -i test.mp4 -vf 'fade=type=in:0:30,type=out:29:1' -c:v libx264  -pix_fmt yuv420p -y out.mp4

这样一来整体的速度又提升了

总结

这都是我自己在使用中碰到的一些问题 希望分享出来 给大家 让大家少走一点弯路

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值