眾多 ts 檔案該怎樣合併成一則?其實單純用 file append 即可:
$ cat 1.ts 2.ts 3.ts > output.ts
所以,假設有一個 M3U 時,可以透過以下指令抓出:
$ grep -v "#" list.m3u | xargs
1.ts 2.ts 3.ts ...
可惜啊,資料比數太 command line 可能會出爆,建議改用 script 來處理,例如 PHP:
<?php
foreach(explode("\n", file_get_contents($m3u_input)) as $line) {
if (empty($line) || $line[0] == '#')
continue;
$raw = file_get_contents($file);
if (!empty($raw))
file_put_contents("$output.raw", $raw, FILE_APPEND);
}
如此一來,就可以把一票 .ts 檔重新建立成單一檔案 .raw 。接著,再用 ffmpeg 轉成想要測試的格式吧!關於 ts 轉 mp4 ,可以透過 ffmepg 處理,其中 ffmpeg 會自己判斷輸出的格式(此例是 mp4),所以有需要也可以用 output.avi:
$ ffmpeg -i input.ts -vcodec copy -acodec copy output.mp4
$ ffmpeg -i input.ts -vcodec copy -acodec copy -bsf:a aac_adtstoasc output.mp4
如果有一票目錄 + M3U 的話,就掃一下目錄建立一票相關的,接著可以用 find 再把這一票轉一轉:
$ find . -name "*.raw" -exec ffmpeg -i {} -vcodec copy -acodec copy -bsf:a aac_adtstoasc {}.mp4 \;
沒有留言:
張貼留言