オーディオを分解し、それがどのようなタイプであるかを知る方法は何ですか?

オーディオを分解し、それがどのようなタイプであるかを知る方法は何ですか?

オーディオを逆多重化し、それがどのようなタイプであるかを知る方法は何ですか?

オーディオをビデオにミキシングするとき、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番目に良いツールは次のとおりですffprobeffmpegパック。その出力はMediaInfoの出力より読みにくいですが、解析する方が簡単です。 (たとえば、両方ともマルチプレクサの各ストリームに対して1つずつ複数の「コーデック」行を印刷するなどの操作を実行するため、状況に応じたパーサーが必要です。)MediaInfoはストリームに関するより詳細な情報も提供します。見えます。

ffprobeすでに使用している場合は、インストール時にffmpeg無料で提供されているので、より好むかもしれませんffmpeg。さらに、同じコードに基づいているので、ffprobeファイルに関する有用な情報を教えてくれるのであれば、ffmpeg仕事に自信を持ってください。

関連情報