一、FFMPEG基本操作
- ts转mp4
ffmpeg -i videoinput.ts out.mp4
二、FFMPEG与M3U8
本部分转自:https://www.cnblogs.com/renhui/p/10351870.html
-
用mp4生成m3u8文件
ffmpeg -re -i F:\test\mda-jdru2en34rfx8we1.mp4 -c copy -f hls -bsf:v h264_mp4toannexb F:\test\output\output.m3u8
m3u8文件是测试的最终文件,上面的命令执行出来的结果应该只有最后5个记录,这是因为ffmpeg 默认的list size 为5,所以只获得最后的5个片段。为了解决这个问题,需要指定参数-hls_list_size 0,这样就能包含所有的片段。ffmpeg -re -i F:\test\mda-jdru2en34rfx8we1.mp4 -c copy -f hls -hls_list_size 0 -bsf:v h264_mp4toannexb F:\test\output\output.m3u8
-
FFmpeg 转 HLS (M3U8) 文件命令参数:
1.start_number 参数(start_number 参数用于设置M3U8列表中的第一片的序列数)ffmpeg -re -i huijia.mp4 -c copy -f hls -start_number 100 -hls_list_size 0 -bsf:v h264_mp4toannexb output.m3u8
生成的序号将从100开始
2.hls_time 参数(hls_time参数用于设置M3U8列表中切片的duration)ffmpeg -re -i huijia.mp4 -c copy -f hls -hls_time 9 -hls_list_size 0 -bsf:v h264_mp4toannexb output.m3u8
指定每段ts的时长
3.hls_list_size 参数(hls_list_size参数用于为M3U8列表中的TS切片的个数。其中设置为0的时候,将包含所有):ffmpeg -re -i huijia.mp4 -c copy -f hls -hls_list_size 2 -bsf:v h264_mp4toannexb output.m3u8
4.hls_base_url参数:
hls_base_url 参数用于为M3U8列表的文件路径设置前置基本路径参数,因为在FFmpeg中生成M3U8时写入的TS切片路径默认为M3U8生成的路径相同,但是实际上TS所存储的路径既可以为本地绝对路径,也可以为相对路径,还可以为网络路径,因此使用hls_base_url参数可以达到该效果,命令行如下:ffmpeg -re -i huijia.mp4 -c copy -f hls -hls_base_url /Users/renhui/Desktop/test/ -bsf:v h264_mp4toannexb output.m3u8
未完待续…