バッチモードでビデオファイルからオーディオを抽出する小さなbashスクリプトを記述しました。
音声は、各mp4ファイルからavconv(およびflacコーデック)を使用してflac形式に抽出されます。
#!/bin/sh
#
# Batch conversion of audio extraction from video
FOLDER_SRC="/home/Me/Music/TestBatchConv"
for myvid in $(find ${FOLDER_SRC} | grep mp4)
do
avconv -i $myvid -acodec flac "${myvid}.flac"
done
exit 0
正常に動作しますが、改善したいと思います。
スクリプトはmp4形式のみを検出します。 (各ビデオ形式をテストする代わりに)コマンドでビデオファイルを認識することは可能ですか?
アドバイスありがとうございます。
file
を探しています
例えば.
$ file -b 01--Frank_Sinatra--Close_to_You_And_More--Close_to_You.m4a
Audio file with ID3 version 2.4.0, contains: ISO Media, MPEG v4 system, iTunes AAC-LC
よく知られているすべてのメディアタイプをカバーする必要があります。不足しているものがある場合は、自分で追加できます(man magic
)。
Bashでテストするには、$ fileがビデオファイルの場合、次を使用できます。
[[ $(ffprobe -v quiet -select_streams v:0 -show_entries stream=codec_name -print_format csv=p=0 "$file") ]] && echo $file is video
ffprobe
はffmpegパッケージによって提供されます。 Ubuntu 14.04の標準リポジトリにはffmpegがありませんが、ppa:mc3man/trusty-mediaリポジトリを追加してffmpegパッケージをインストールすると、必要なソフトウェアを入手できます。詳細は here を参照してください。