1.简介
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案.
2.相关
系统版本:CentOS Linux release 7.6.1810 (Core)
ffmpeg版本:2.8.15
主机IP:172.20.10.x
3.步骤
3.1.安装
添加源
yum install -y epel-release
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
安装ffmpeg
yum install -y ffmpeg
查看版本
ffmpeg -v
3.2.转格式
其它转成mp4格式
如果视频不为mp4格式,需先将视频转码为mp4,可使用如下命令进行转换
ffmpeg -i 本地视频地址 -y -c:v libx264 -strict -2 转换视频.mp4
例:
ffmpeg -i video.flv -y -c:v libx264 -strict -2 video.mp4
mp4转ts格式
ffmpeg -y -i 本地视频.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 转换视频.ts
例:
ffmpeg -y -i video.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb video.ts
3.3.切片
ffmpeg -i 本地视频.ts -c copy -map 0 -f segment -segment_list 视频索引.m3u8 -segment_time 5 前缀-%03d.ts
例:
ffmpeg -i video.ts -c copy -map 0 -f segment -segment_list video.m3u8 -segment_time 5 a-%03d.ts
其中segment 就是切片,-segment_time表示隔几秒进行切一个文件,上面命令是隔5s,你也可以调整成更大的参数。
4.效果
查看video.m3u8文件内容
5.扩展
5.1.推流
for((;;)); do \
ffmpeg -re -i video.flv \
-vcodec copy -acodec copy \
-f flv -y rtmp://172.20.10.156:1935/live/livestream; \
sleep 1; \
done