ffmpeg音视频加速
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ffmpeg音视频加速相关的知识,希望对你有一定的参考价值。
参考技术A 修改视频的pts,dts视频变为2倍速
注意:
简单的方法是调整音频采样率,但是这种方法会改变音色,一般采用通过对原音进行冲采样,差值等方法
注意:
Ubuntu20配置ffmpeg进行gpu硬件加速视频编码记录
Ubuntu20配置ffmpeg进行gpu硬件加速视频编码记录
https://blog.csdn.net/qq_36383272/article/details/116304060?spm=1001.2014.3001.5501
https://blog.csdn.net/qq_36383272/article/details/118569908
现有环境
1.Ubuntu:20
2.显卡驱动:470
3.Cuda:11.1+cudnn
1.获取ffmpeg源码
git clone https://git.ffmpeg.org/ffmpeg.git
注:这个是最新的源码,对于较老的驱动需要自行去官网匹配。
2.安装aac、h264、h265库
sudo apt-get install libfdk-aac-dev libx264-dev libx265-dev
注:这个要在编译ffmpeg之前安装
3.安装ffnvcodec
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make
sudo make install
4.编译ffmpeg
终端进入ffmpeg文件夹,输入如下指令进行配置
静态配置:
./configure --prefix="/usr/local" --pkg-config-flags="--static" --disable-asm --enable-gpl --enable-libx264 --enable-libx265 --enable-nonfree --enable-libfdk-aac --enable-ffplay
动态配置的指令:
./configure --prefix="/usr/local" --enable-shared --disable-static --disable-asm --enable-gpl --enable-libx264 --enable-libx265 --enable-nonfree --enable-libfdk-aac --enable-ffplay
选一个就可以。
在config后会输出
遇到:License: nonfree and unredistributable以及后面的东西,可以直接下一步。
接下来编译安装
make -j16
sudo make install
5.验证
ffmpeg -codecs | grep nv
这样就成功了,接下来进行测试。
6.测试
1.下载测试视频
本次使用原win7中的自带视频,Wildlife.wmv和Wildlife.yuv
链接: https://pan.baidu.com/s/1cmZy0sfyklJgBIcxQLkxmg 提取码: bw6k
2.测试
cpu测试指令
./ffmpeg -s 1280x720 -i Wildlife.yuv -c:v libx265 -c:a aac output.mp4
效果
Gpu测试指令
./ffmpeg -s 1280x720 -i Wildlife.yuv -c:v h264_nvenc -c:a aac output.mp4
cpu帧率fps=64.5
gpu帧率fps=806
7.python调用代码
import threading
import os
import time
from datetime import datetime
def thread_func(num):
os.system('/home/cj/work/gpu_ffmpeg/ffmpeg/ffmpeg -i /home/cj/work/video_gpu/test.avi -c:v h264_nvenc -b:v 5M ml%s.mp4 >>video_output.log 2>&1' % num)
print('num=', num)
def many_thread(num):
threads = []
for i in range(num):
t = threading.Thread(target=thread_func, args=(i,))
threads.append(t)
for t in threads:
t.start()
if __name__ == '__main__':
many_thread(1)
最后一行是并发数设置,这个需要和显卡性能匹配,查看网址为:
https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new
以上是关于ffmpeg音视频加速的主要内容,如果未能解决你的问题,请参考以下文章