HLS 多個 *.ts 檔案合併成 mp4 影片

2018091916:12
3 個方式




方法一

ffmpeg -y -i "concat:0.ts|1.ts|2.ts|3.tx" -acodec copy -vcodec copy -absf aac_adtstoasc out.mp4
.ts 檔案不多的話,可以:
(若 .ts 檔案上千個,會無法執行這命令)





方法二

for f in ./{0..<ts數目>}.ts; do cat $f >> out.mp4; done




方法三


#!/bin/bash
for i in `ls *.ts | sort -V`; do echo "file $i"; done >> mylist.txt
ffmpeg -f concat -i mylist.txt -c copy -bsf:a aac_adtstoasc video.mp4



參考
https://superuser.com/questions/692990/use-ffmpeg-copy-codec-to-combine-ts-files-into-a-single-mp4




有些 *.ts 檔案會加密
.m3u8 檔案內有類似這樣的加密資料:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="9f198123456.ts",IV=0xffaaaaaaa53426dc48400000

用這個 m3u8-downloader 可以自動下載、自動解碼:
https://github.com/llychao/m3u8-downloader
提供 Windows / Linux / MacOS 版本執行檔