流媒体:ffmpeg生成HLS的m3u8与ts片段
转换方式一
1.直接把媒体文件转为ts
ffmpeg -i cat.mp4 -c copy -bsf h264_mp4toannexb cat.ts
2.使用segment参数进行切片
ffmpeg -i cat.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 2 cat_output%03d.ts
转换方式二
1.ffmpeg切片命令,以H264和AAC的形式对视频进行输出
ffmpeg -i input.mp4 -c:v libx264 -c:a aac -strict -2 -f hls output.m3u8
2.ffmpeg转化成HLS时附带的指令
-hls_time n: 设置每片的长度,默认值为2。单位为秒
-hls_list_size n:设置播放列表保存的最多条目,设置为0会保存有所片信息,默认值为5
-hls_wrap n:设置多少片之后开始覆盖,如果设置为0则不会覆盖,默认值为0.这个选项能够避免在磁盘上存储过多的片,而且能够限制写入磁盘的最多的片的数量
-hls_start_number n:设置播放列表中sequence number的值为number,默认值为0
3.对ffmpeg切片指令的使用
ffmpeg -i output.mp4 -c:v libx264 -c:a aac -strict -2 -f hls -hls_list_size 0 -hls_time 5 data/output.m3u8
参数:
-hls_base_url m3u8播放地址前缀
-segment_list_entry_prefix m3u8播放地址前缀
-s 1280x720 : 720p分辨率
-b 1500k 比特率
-r 设定帧速率,默认为25
-aspect 设定画面的比例
最后更新于 2020年7月17日
相关博文
流媒体:ffmpeg生成HLS的m3u8与ts片段