witchの日記: (HDDレコーダ)(URLメモ) ffmpeg で 入力データから任意のストリームだけ取り出す
IRCでTSの再エンコードの音ずれの話をしていて見つけたのでメモ。
MobileHackerz Knowledgebase Wiki > 最新ffmpeg の 高度なオプション から
Advanced options:
-map
出力ファイルへのストリームマッピングを指定する。
* 例1. Input #0 -> #0.0: 映像、#0.1: 音声 (jpn)、#0.2; 音声 (eng) とかの場合
-map 0.0 -map 0.2 とつけると、映像と英語音声のみのファイルにできます。
* 例2. -newvideo, -newaudio, -newsubtitle オプションと組み合わせることで
ソースファイルから任意のストリームを取り出して組み合わせられます。
例えばソースが以下のような構成だとします。
(以下略)
この機能を使えば「マルチ編成」なTSデータからのチャンネル分離もffmpegでできるような気がしてきました。
---
2010/01/19 12:50 追記
この日記を書いた後、NHK BS1/2 マルチ編成のTSで試してみたら、あっさりできました。
あと、-map なんて使わずに -programid でチャンネル指定して -vcodec copy -acodec copy であっさり分離できるし…
-programid で指定するIDや -map で指定するIDは
ffmpeg -i TSファイル
とやれば、TSファイルの中身を解析して表示してくれます。
(ただし、TSの頭から何パケットかを読むだけのようなので、ddとかで番組の頭出しをしておかないと正しい情報がみられないみたい)
うーん…以前に -programid 試したときはうまく動かなかった気がするんだけど…
あと、mencoder (mplayer) に -tsprog というオプションがあって、これを使って ffmpeg の -programid と同じことができました。
詳しい調査はまた週末に
(HDDレコーダ)(URLメモ) ffmpeg で 入力データから任意のストリームだけ取り出す More ログイン