bash script: возможно ли распознать формат видео из файлов (чтобы извлечь из них пакетную аудиозапись)?

Я написал небольшой скрипт bash для извлечения аудио из видеофайлов в пакетном режиме.

Звук извлекается из каждого файла mp4 в формат flac с помощью avconv (и кодека 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. Можно ли распознать видеофайл с помощью команды (вместо тестирования каждого видеоформата)?

Спасибо за советы.

2
задан 7 March 2013 в 19:51

2 ответа

Вы ищете 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).

0
ответ дан 7 March 2013 в 19:51

Для тестирования в 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 repository и установить пакет ffmpeg для получения необходимого программного обеспечения. См. здесь для деталей.

0
ответ дан 7 March 2013 в 19:51

Другие вопросы по тегам:

Похожие вопросы: