web-dev-qa-db-ja.com

MP4ファイルからM4AにAACオーディオを抽出する方法

Mp4ファイルからaacオーディオを抽出するにはどうすればよいですか?

Ffmpegと-acodec copyを試してみましたが、出力としてmp4を使用すると、ビデオがエンコードされ、同じファイルサイズになります。

出力としてm4aを使用すると、何らかの方法でビデオがエンコードされ、ほぼ同じファイルサイズが得られます。

出力としてaacを使用すると、ファイルサイズはビデオが削除されたことを示唆していますが、puddletagでファイルを開くことができません

前もって感謝します

12
Turtlepurple

最終的に、出力形式としてmp4またはm4aを使用し、ビデオもコピーされないように-vnを追加するという解決策を見つけました。

ffmpeg -i input.mp4 -vn -c:a copy output.m4a

(出典: https://superuser.com/a/706622/180675

今簡単に思えます:]

高速でロスレスなストリッピング

20
Turtlepurple

別のオプション:

MP4Box -add infile.mp4#audio outfile.m4a

MP4Boxはgpacパッケージの一部です。

3
ʇsәɹoɈ

楽しみのために、vlcを使用してそれを行うこともできます。以下のスクリプトは、現在のディレクトリ内のすべての* .mp4ファイルを* .m4aにストリップします。無視できるエラーメッセージがいくつかあります。

#!/bin/bash

quote=\"  
executable="/usr/bin/vlc"
argument3=vlc://quit

#parameters
accessvalue=file
muxvalue=mp4

for x in *.mp4; do
    inputname="${x}"
    strippedname=${x%.mp4}
    outputname=${strippedname}.m4a
    quote_outputname=${quote}./${outputname}${quote}
    echo ${inputname}
    echo ${quote_outputname}
    qtranscode=#transcode{vcodec=none}: # rm this commnt, cont' nxt line !!
    standard{access=$accessvalue,mux=$muxvalue,dst=${quote_outputname}}
    argument1="$inputname"
    argument2=--sout=$qtranscode
    "$executable" -I dummy "$argument1" "$argument2" "$argument3"
done
0
oscar1919