オーディオを逆多重化し、それがどのようなタイプであるかを知る方法は何ですか?
オーディオをビデオにミキシングするとき、ffmpeg、mencoderなどはオーディオエンコーディングが何であるかを知る必要があります。エンコーダは通常、ファイル名拡張子を「パラメータ」として使用します。例えば。 .aac
しかし、ミキシングしたいオーディオが別のビデオで分割されたときにスクリプトのエンコードタイプをどのように決定しますか?
この魔法のような情報を見つけるための最も近い方法は、コーデックの4CC文字列(4文字コード)を取得することでしたが、それは必ずしも当てはまりません。 *(更新:これは4CCコードではないように見え、実際にはmplayerの仕様です。「コーデックスイート」..以下にリストされています: mplayer -afm help
/usr/share/mplayer/midentify.sh $audio |sed -nr 's/^ID_AUDIO_CODEC=(.*)/\1/p')"
私の出力ビデオはMP4コンテナを使用しているため、入力オーディオのフォーマットを知っている必要があり、必要に応じてそれをトランスコードする必要があります...どのような場合でもオーディオエンコーダが必要です。タイプ、上記のコマンドで出力されたコードではありません。
逆多重化にも事前認識やコーデックタイプが必要なようです!
通常のダンプを試しましたが、mplayer -dumpaudio $audio
適切なサフィックスを手動で追加しても出力は再生されません。
答え1
私が知っている最高のコマンドラインメディアタイプ識別ツールは次のとおりです。メディア情報。プロジェクトページにはWindows GUIプログラムとして表示されますが、3つの主要プラットフォームすべてのコマンドラインバージョンがあります。コマンドライン出力は読み取ることができますが、Perlなどの言語で解析するのは非常に簡単です。
私が知っている2番目に良いツールは次のとおりですffprobe
。ffmpegパック。その出力はMediaInfoの出力より読みにくいですが、解析する方が簡単です。 (たとえば、両方ともマルチプレクサの各ストリームに対して1つずつ複数の「コーデック」行を印刷するなどの操作を実行するため、状況に応じたパーサーが必要です。)MediaInfoはストリームに関するより詳細な情報も提供します。見えます。
ffprobe
すでに使用している場合は、インストール時にffmpeg
無料で提供されているので、より好むかもしれませんffmpeg
。さらに、同じコードに基づいているので、ffprobe
ファイルに関する有用な情報を教えてくれるのであれば、ffmpeg
仕事に自信を持ってください。