使用ffmpeg下载HLS(m3u8)合并生成单个MP4视频,多mp4视频合并也是同理

本文介绍了如何使用ffmpeg命令下载并合并HLS(m3u8)流,生成单个MP4视频。在遇到错误时,通过生成ts文件下载列表,然后使用wget下载ts文件,并创建合并列表,最终使用ffmpeg进行视频合并。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载m3u8的ffmpeg命令:

$ mkdir mydir
$ ffmpeg -i http://xxx.com/hls/record.m3u8 -c copy mydir/out.mp4

如果完整的ts流,中间没有中断过。那么在mydir目录直接就生成out.mp4了。

但是我这里不幸出现错误:

[mp4 @ 0x1104490] Application provided duration: 8431004738 / timestamp: 8537426612 is out of range for mov/mp4 format
[mp4 @ 0x1104490] pts has no value

这样只好自己手工下载m3u8文件中的ts文件然后再合并。

首先可以通过下面命令生成一个ts文件dowload列表:

$ curl -s http://xxx.com/hls/record.m3u8 | grep '.ts' | xargs -n 1 -I{} echo 'http://xxx.com/hls/{}' > download-list.txt
$ cat download-list.txt
http://xxx.com/hls/20191012/085950_49.ts
http://xxx.com/hls/20191012/090001_50.ts
http://xxx.com/hls/20191012/090013_51.ts
http://xxx.com/hls/20191012/090025_52.ts
http://xxx.com/hls/20191012/090037_53.ts
http://xxx.com/hls/20191012/090049_54.ts
http://xxx
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值