FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
准备
官网ffmpeg
下载地址
ffmpeg官网提过了三大平台的安装包:
本次测试主要是在windows下面使用,因此下载了window的安装包,解压后如下:
该包没有提供可视化界面,因此使用cmd工具进行使用。本次使用cmder进行操作。
可用的视频直播测试地址:
HTTP协议直播源
香港卫视:http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8
CCTV1高清:http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8
CCTV3高清:http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8
CCTV5高清:http://ivi.bupt.edu.cn/hls/cctv5hd.m3u8
CCTV5+高清:http://ivi.bupt.edu.cn/hls/cctv5phd.m3u8
CCTV6高清:http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8
苹果提供的测试源(点播):http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/gear2/prog_index.m3u8
测试:
运行cmder,进入ffmpeg可执行文件所在目录:
- 测试播放:
λ ffplay -i http://ivi.bupt.edu.cn/hls/cctv5phd.m3u8
此时会弹出预览窗口
- 实时转码保存
λ ffmpeg -i http://ivi.bupt.edu.cn/hls/cctv5phd.m3u8 -c:a copy -c:v copy d:\20180706-cctv5+live.mp4
以上命令参数解释:
ffmpeg:可执行程序名称
-i: 输入
http://ivi.bupt.edu.cn/hls/cctv5phd.m3u8: 直播视频源
-c:a copy : 音频编码,并拷贝
-c:v copy :视频编码,并拷贝
d:\20180706-cctv5+live.mp4 转存的路径以及文件名
开始录制,对应路径下生成文件:
想要停止转存,按q
即可。
实际使用
- 要录制的网页直播视频:
点击点击网页观看
进入直播页面,打开控制台,查看Network`,找到接口,分析直播地址:
- 转录视频
λ ffmpeg.exe -i http://livepgc.sobeycache.com/pgc/d831b248a3ae10fba60e085954f175ff.m3u8?auth_key=1561711194-0-0-13dd761cb11f51e0cb247b39dadf7231 -c:v copy -c:a copy d:\wenke_0706pm_01.mp4
-
录制完成,查看文件
思考
1、该方法可实现直播的回放功能。
2、在转存的实现中可使用
λ ffmpeg.exe -i http://livepgc.sobeycache.com/pgc/d831b248a3ae10fba60e085954f175ff.m3u8?auth_key=1561711194-0-0-13dd761cb11f51e0cb247b39dadf7231 -c:v copy -c:a copy -f mp4 d:\wenke_0706pm_01.mp4
加入-f mp4
参数,实现实时转码,但是这样会增加系统开销,本次录制中没有使用。
3、可以新增控制台,对多个直播源进行录制。