如何把多个ts文件合并为一个mp4文件
1. 下载视频,在chrome的控制台中运行
url_m3u8 = 'https://r3-ndr-private.ykt.cbern.com.cn/edu_product/esp/assets/165e6859-0516-544a-0dab-c1f411aaac0d.t/zh-CN/1691657551953/transcode/videos/165e6859-0516-544a-0dab-c1f411aaac0d-1920x1080-8bfea3d499b817b80a9f4d5bbf3dac9d.m3u8'
url_video = 'https://r3-ndr-private.ykt.cbern.com.cn/edu_product/esp/assets/165e6859-0516-544a-0dab-c1f411aaac0d.t/zh-CN/1691657551953/transcode/videos/'
fetch(url_m3u8, {
headers: {
// 这里是获取m3u8的令牌,你的项目不需要
'X-Nd-Auth': window.videojs.Hls.xhr.beforeRequest({ uri: url }).headers['X-ND-AUTH'],
'Content-Type': 'application/json'
}
})
.then(response => response.text())
.then(async data => {
// 解析 m3u8 文件,获取所有的 ts 视频链接
const urls = data.split("\n").filter(line => line.trim().endsWith('.ts'));
for (let i = 0; i < urls.length; i++) {
const url = url_video + urls[i];
window.open(url)
}
})
.catch(error => console.error(error));
2. 把所有.ts的名称写入一个文件
把所有的ts文件放到一个文件夹中,创建一个1.txt文件,把所有的ts文件名写入1.txt中,然后执行下面的命令
1.txt
文件中类似于这样 1
file 1.ts
file 2.ts
...
file 200.ts
3. 执行命令,合并视频
需要先下载 ffmpeg.exe
文件,然后执行命令
ffmpeg -f concat -i 1.txt -c copy 视频.mp4