ffmpegでTSなどで左右で言語が違う二か国語データを動画x1、音声x2の3ストリームに変換する方法。
いろいろググって見るとmapとmap-channelを使って分けるという方法が出てきました、普通に考えると動画、音声1、音声2の順番にすると思うのですがどうもこれがよくないらしい。
というのもDLNAサーバーのPMSでトランスコードさせると音声が出ません。
PMSのログを見ると-aid 0となっているのですが、上記順番だと-aid 1にする必要があります。
やはりこれは標準的ではない様子なのでどうしたものかと考えていたところffmpegの設定を見つけました。
ffmpeg -i INPUT ・・・ -acodec ACODEC -ab 128k -ac 1 -filter_complex channelsplit OUTPUT
これで問題なくPMSですんなり再生される動画に変換することができました。
ちなみにavidemuxで編集すると2つ目の音声が切り捨てられてしまうので変換前にカット編集を行った方が良いようです。