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
しかし、それをオーディオ出力に関連付けることは可能ですか?解決策は私が推測する両方の一部ですが、私はそれを理解することはできません。
.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
スイッチも使用します。