パスワードを忘れた? アカウント作成
184990 journal

witchの日記: (HDDレコーダ)(URLメモ) ffmpeg で 入力データから任意のストリームだけ取り出す

日記 by witch

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 と同じことができました。

詳しい調査はまた週末に

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」

読み込み中...