ffmpeg 转码及多线程处理

以下为下载ffmpeg的地址:

Releases · BtbN/FFmpeg-Builds · GitHubContribute to BtbN/FFmpeg-Builds development by creating an account on GitHub.https://github.com/BtbN/FFmpeg-Builds/releases

下载好相应的版本后,解压即可,添加bin至环境变量

(linux环境变量的添加,详见另一篇文章:修改Linux环境变量PATH_MasterD56的博客-CSDN博客vim /etc/environment在PATH="/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin"中加入 ":/usr/local/bin" # 所需要添加的路径,前面加 : 分隔生效方法:系统重启有效期限:永久有效用户局限:对所有用户查看环境变量: echo $PATH...https://blog.csdn.net/MasterD56/article/details/123482715?spm=1001.2014.3001.5501

使用:

"ffmpeg -report -i %s -f hls %s" % (需要转码的文件及路径,转码后的文件及路径)

如:

ffmpeg -report -i /data/aaa.mp4 -f hls /data/aaa/aaa.m3u8

成功!


但是你会发现执行的很慢,不要慌,ffmpeg自带了多线程转码方法

-threads 5 -preset ultrafast

即:

ffmpeg -report -i /data/aaa.mp4 -threads 5 -preset ultrafast -f hls /data/aaa/aaa.m3u8


以上转完之后,m3u8文件里只有最后5个文件指针,适合实时播放,如直播;添加参数,完整输出所有的文件指针

-hls_list_size 0

即:

ffmpeg -report -i /data/aaa.mp4 -threads 5 -preset ultrafast  -hls_list_size 0 -f hls /data/aaa/aaa.m3u8


完事! 飞快!另外可以用python启动进程池,看需求及逻辑,这里就不例举了!

猜你喜欢

转载自blog.csdn.net/MasterD56/article/details/123483604