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: 切片的时长

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM