
YouTube からダウンロードした MPEG4 (MP4 コンテナ、H264 AVC ビデオ、AAC オーディオ) ビデオ クリップがある場合、無料の Linux ツールを使用して、そのオーディオ チャネルを独立したオーディオ (できればオーディオを解凍および再圧縮せずに) ファイルに分離するにはどうすればよいでしょうか。
答え1
YouTubeの動画を考えると、動画から音声を抽出する必要はないかもしれない。オーディオトラックは個別にダウンロードできます最新のFlashgotアドオンを搭載したFirefoxを使用するか、mps-ユーチューブ(これはYouTubeからオーディオトラックを再生およびダウンロードするためのツールです:詳細ここ)。
mp4 ビデオ ファイルの場合:
回答通りここ次のように、特定のファイル名を必要とせずに、より一般的なコマンドを使用して、それをファイル マネージャーのカスタム メニューに追加することができます。
ffmpeg -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a
( のコンテナとしてより広くサポートされている を使用すること.m4a
が望ましいですが、必要に応じて代わりに.aac
raw を使用することもできます。).aac
また、ターミナルでこのコマンドを実行すると、現在のフォルダー内のすべての mp4 ファイルからオーディオ トラックが抽出されます。
for i in *.mp4; do ffmpeg -i "${i}" -map 0:1 -c:a copy "${i%.mp4}.m4a"; done
(ここソース投稿)
ファイル マネージャーのコンテキスト メニューでこのようなコマンドを使用する方法については、リンクされた回答と質問のコメントと関連情報を参照してください。
上記のコマンドおよび他の同様のコマンドは、入力拡張子と出力拡張子を適切に置き換えることで、他の種類のビデオ ファイルからオーディオを抽出する場合にも使用できます。
最初のコマンドも同様に機能しますflv
が、他のビデオの場合は、m4a
ビデオ クリップに含まれるオーディオに置き換えるだけです。2 番目のコマンドは、異なる種類のビデオ ファイルに適用する場合、ビデオ拡張子とオーディオ拡張子の両方を置き換える必要があります。
通常、mp4
およびflv
ファイルにはaac
オーディオが含まれ、Webm
ファイルにはオーディオが含まれogg
、avi
ファイルにはmp3
オーディオが含まれます。ビデオにどのようなオーディオが含まれているかを確認するには、次を使用します mediainfo
。mediainfo-GUI、またはmediainfo
ターミナルに と をインストールするだけです: mediainfo <file>
。
答え2
オーディオ ストリームが 1 つだけであり、それが であることがわかっている場合はaac
、次のコードのみが必要です。
ffmpeg -acodec copy -i "movie.mp4" -y "audio.aac"
最初のオーディオ ストリーム ID とコーデック タイプ/ファイル拡張子をスクリプト化する場合は、次のようにします。
eval $(ffmpeg -i "movie.mp4" 2>&1 |awk '/Stream.*Audio/{print "stream=" $2 ";codec=" $4}' |head -n1)
stream=${stream:1}; stream=${stream/:/}
extn=${codec/,/}; [[ $extn == "aac" ]] ||
{ echo "You need to manually set the fiie extension. Codec type is: $codec"; exit 1; }
ffmpeg -map $stream -acodec copy -i "movie.mp4" "audio.$extn"