1.简介
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案
2.相关
系统版本:CentOS Linux release 7.6.1810 (Core)
ffmpeg版本:2.8.15
主机IP:172.20.10.156
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文件内容
#EXTM3U #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-ALLOW-CACHE:YES #EXT-X-TARGETDURATION:9 #EXTINF:8.133333, a-000.ts #EXTINF:5.933333, a-001.ts #EXTINF:4.866667, a-002.ts #EXTINF:4.900000, a-003.ts #EXTINF:4.400000, a-004.ts #EXTINF:4.733333, a-005.ts #EXTINF:4.400000, a-006.ts #EXTINF:7.866667, a-007.ts #EXTINF:5.400000, a-008.ts #EXTINF:5.466667, a-009.ts #EXTINF:6.000000, a-010.ts #EXTINF:8.100000, a-011.ts #EXTINF:6.233333, a-012.ts #EXTINF:8.333333, a-013.ts #EXTINF:6.833333, a-014.ts #EXTINF:3.433333, a-015.ts #EXTINF:8.333333, a-016.ts #EXTINF:1.666667, a-017.ts #EXTINF:7.700000, a-018.ts #EXTINF:7.300000, a-019.ts #EXT-X-ENDLIST
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