Linux 下使用 ffmpeg 大批量合并 ts 文件, mp4切割文件为m3u8

见范例

ffmpeg -i "concat:file001.ts|file002.ts|file003.ts|file004.ts......n.ts" -acodec copy -vcodec copy -absf aac_adtstoasc out.mp4
ffmpeg -i https://ip182.com/media=hlsA/ssd2/21/8/184547828.m3u8 -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4
ffmpeg -i https://ip182.com/media=hlsA/ssd2/21/8/184547828.m3u8 -acodec copy -vcodec copy output.mp4

切割mp4为m3u8格式,推荐用以下第一行的命令就行了

ffmpeg -i raw_video.mp4 -c copy -map 0 -f segment -segment_list hls/video.m3u8 hls/video%d.ts
ffmpeg -i Video.mp4 -c copy -map 0 -f segment -segment_list video_playlist.m3u8 -segment_time 2 video%03d.ts
ffmpeg -i Video.mp4 -c copy -bsf:v h264_mp4toannexb -map 0 -f segment -segment_time 10 -segment_format mpegts  -segment_list video_playlist.m3u8  video%03d.ts

这个命令也可以切片 mp4 为m3u8列表,还没有仔细看

ffmpeg -i Video.mp4 -c copy -hls_time 2 -hls_list_size 0 video_playlist.m3u8

segment_time参数指定切片的时间(大小),效果上感觉不加这个参数,使用系统默认的时间大小就挺好

还没有仔细研究,估计只是把mp4切片为m3u8列表,不需要用 -bsf:v h264_mp4toannexb 这个选项吧

有时间可以研究一下官方文档:https://www.ffmpeg.org/ffmpeg-formats.html#segment_002c-stream_005fsegment_002c-ssegment/

##########################################################################################

以下是网上抄的一段,没仔细研究,网址是https://www.cnblogs.com/saysmy/p/5629019.html

## ffmpeg转视频格式为m3u8

ffmpeg -i test.mp4 -codec:v libx264 -codec:a mp3 -map 0 -f ssegment -segment_format mpegts -segment_list playlist.m3u8 -segment_time 10 out%03d.ts

-i : 引入视频源

-codec:v : 视频格式
-codec:a : 音频格式
segment_format: 来指定输出格式为mpegts
segment_list: 用来配置输出的列表文件名
segment_time: 切片的时长

 

SRS搭建自己的直播、点播系统 

使用ffmpeg直播本地的视频文件(把本地文件作为直播的源)rtmp:127.0.0.1:2935为接收地址

ffmpeg -i /media/Movies/goog_video.mp4 -vcodec copy -acodec copy -y -f flv rtmp:127.0.0.1:2935/live/test

#本地播放

ffplay http://127.0.0.1:8081/live/test.m3u8

 
原文地址:https://www.cnblogs.com/faberbeta/p/ffmpeg001.html