FFMPEG 转为 m3u8
ffmpeg -i mayun.mp4 -c:v libx264 -c:a aac -strict -15 -f hls -hls_list_size 128 -hls_time 300 mayun.m3u8
- hls_time 设置每片的长度,默认值为 2,单位为秒。
- hls_list_size n 设置播放列表保存的最多条目,设置为 0 会保存有所片信息,默认值为5。
- -hls_wrap n 设置多少片之后开始覆盖,如果设置为0则不会覆盖,默认值为0。这个选项能够避免在磁盘上存储过多的 片,而且能够限制写入磁盘的最多的片的数量。
- hls_start_number n 设置播放列表中 sequence number 的值为 number,默认值为 0。
- strict 段数量
**注意:**播放列表的 sequence number 对每个 segment 来说都必须是唯一的,而且它不能和片的文件名(当使用 wrap 选项时,文件名有可能会重复使用)混淆。
hls_time 切片时间不准确的问题
播放 m3u8 的 ts 切片,必须要完整的下载一个 ts 切片,才能够播放,设置hls_time 的时间间隔越短越好( 根据实际情况来 ),实际过程中设置切片时间间隔为 2 秒,调用如下指令
m3u8(ts) 合并为 MP4
远程文件
ffmpeg -i "https://xushanxiang.com/demo/ffmpeg/hls265/output.m3u8" -vcodec copy -acodec copy -absf aac_adtstoasc output.mp4 本地文件
1、打开 cmd
2、输入指令,按照文件的实际路径合并
合并成 ts文件 copy /b F:\f*.ts E:\f\new.ts
合并成 MP4 文件 copy /b F:\f*.ts E:\f\new.MP4
而通过 ffmpeg 命令如下:
直接转: ffmpeg -i new.ts -c copy -map 0:v -map 0:a output.mp4
指定音频流(一般用这个): ffmpeg -i new.ts -c copy -map 0:v -map 0:a -bsf:a aac_adtstoasc output.mp4
重编码视频: ffmpeg -y -i new.ts -c:v libx264 -c:a copy -bsf:a aac_adtstoasc output.mp4
http://ossrs.net/lts/zh-cn/docs/v5/doc/rtmp
ffmpeg -re -i ./mayun.mp4 -c:v h264 -f flv rtmp://192.168.1.10/live/livestream
http://192.168.1.10:8080/live/livestream.m3u8
ffmpeg -re -i ./mayun.mp4 -c:v h264 -f flv rtmp://192.168.1.10/live/livestream
ffmpeg -re -i ./mayun.mp4 -c:v h264 -f rtsp -rtsp_transport tcp rtsp://localhost:8554/abcde