web-dev-qa-db-ja.com

動画からM4Aオーディオを抽出し、アートワークを関連付けます

Ubuntu 12.04で、avconvを使用してビデオ(MP4やFLVなど)からM4Aのオーディオを抽出するのはなぜですか。

avconv -i video.mp4 -c:a libvo_aacenc sound.m4a 

その中にビデオストリームがあり、オーディオストリームのみが必要な場合は、次のように-vnオプションを追加する必要があります。

avconv -i video.mp4 -c:a libvo_aacenc -vn sound.m4a

つまり、M4Aはオーディオ形式ではありませんか?


アートワークをオーディオ出力に追加することは可能ですか?

このコマンドで1つのフレームを抽出できます。

avconv -i vid.mp4 -vsync 1 -frames 1 -s 1024x768 -an -y image.jpeg

しかし、それをオーディオ出力に関連付けることは可能ですか?解決策は私が推測する両方の一部ですが、私はそれを理解することはできません。

3
riimzzai

.m4aは、 MPEG-4 Part 14コンテナ で一般的に使用されるもう1つのファイル拡張子で、通常はMP4と呼ばれます。コンテナには、ビデオ、オーディオ、字幕を入れることができます。拡張子はその事実を変更しませんが、多くの場合、オーディオは.m4aファイルに、ビデオは.m4vファイルにのみ配置します。

詳細については、ウィキペディアを参照してください。

…MPEG-4パート14はコンテナ形式であるため、MPEG-4ファイルには、オーディオ、ビデオ、さらにはサブタイトルストリームをいくつでも含めることができます。 MPEG-4ファイルのファイル拡張子だけに基づいてストリームのタイプを判別することは不可能です。それに応じて、Apple Inc.は、の使用と普及を開始しました。 m4aファイル名拡張子。損失の多いAdvancedAudio Coding(AAC)または独自のLossless Apple Lossless(ALAC)形式のオーディオデータを含むMP4コンテナに使用されます。オーディオ/ビデオ再生が可能なソフトウェアは2つの間にファイル形式の違いがないため、予想どおり、.m4aまたは.mp4ファイル拡張子のいずれかを持つファイルを認識します。MPEG-4オーディオを作成できるほとんどのソフトウェアは、ユーザーに許可します作成したMPEG-4ファイルのファイル拡張子を選択します。


1つの静止画像を音声と一緒に表示する場合は、それをビデオに変換する必要があります。たとえば、必要なフレームを作成し、それをimage.png(またはimage.jpg)と呼びます。

avconv -i input.mp4 -frames:v 1 image.png 

これにより、ビデオの最初のフレームが表示されます。別のタイムスタンプからのものが必要な場合は、スキップする-ssの前に-iオプションを追加します。 10秒:avconv -ss 10 -i …

次に:

avconv -i input.mp4 -i image.png \
-c:v libx264 -pix_fmt yuv420p -r 1 -c:a copy -map 0:a:0 -map 1 output.mp4

ここでは、静止画像からビデオをエンコードするためにx264を選択し、元のファイルからオーディオストリームをコピーするだけです。 -r 1のフレームレートで十分ですが、その部分は省略できます。

-map 0:a:0を使用して、最初のファイルから最初のオーディオストリームを選択し、-map 1を使用して、出力に多重化する画像を選択します。 (\は、改行をエスケープするためのものです。)

-mapスイッチは、最近の(そしてまともな)最新のFFmpegバージョンでは正常に機能しますが、UbuntuのLibavについては説明できません。それがうまくいかない場合は 代わりにFFmpegをダウンロードしてください


アルバムアートワークを.m4aファイルに設定する場合は、 AtomicParsley を使用します。

AtomicParsley input.m4a --artwork image.jpg

これにより、画像がアートワークとして埋め込まれた新しいファイルが作成され、ほとんどのメディアプレーヤーで正しく表示されるようになります。入力ファイル自体を上書きするには、--overWriteスイッチも使用します。

1
slhck