常用到的一些命令,标记一下:
1,将本地文件推送至服务器的命令:
./ffmpeg -re -i ./out_15.mp4 -c copy -f flv rtmp://192.168.1.202:1935/live/livestream
2,ffmepg切片的命令:
./ffmpeg -i ./out_15.mp4 -c copy -map 0 -f segment -segment_list ./playlist.m3u8 -segment_time 3 ./output%03d.ts (切片时间长度为3秒,并且同时生成m3u8 的索引)
/ffmpeg -i ./bigbang.mp4 -c:v libx264 -c:a aac -strict -2 -f hls -hls_time 5 -hls_list_size 0 output.m3u8 (这个是网上找到的命令,经过测试还是比较好用的,hls_time 是切片的长度;-hls_list_size 0 是表示当前目录下可以存放的片段个数)
这里需要注意的是,我在使用这些命令的时候,用的是mp4源文件进行切片,但是发现无论怎么设置切片的时间都不起作用,例如设置切片长度是3秒,结果切出来的是居然有11秒的片段;经过各种测试,发现如果想切片短一点,就需要插入使用到插入i帧的命令。为了切片我把插入i帧的命令的-g设置成了5;结果发现切出来基本在2.8-3.9之间,还是比较正常的。
./ffmpeg -i ./output.mp4 -c:a copy -c:v libx264 -g 15 -f flv out_15.mp4
4,ffmpeg m3u8 转换成mp4的命令:
./ffmpeg -i ./SRCVIDEO.m3u8 -bsf:a aac_adtstoasc -vcodec copy -f mp4 ./output.mp4