сценарий оболочки для пакетного преобразования M4V в MP3 с использованием VLC?

Я хочу, чтобы пакет конвертировать каталог M4V видео файлов в MP3 аудио файлы с помощью VLC. (Я не против использования ffmpeg в качестве альтернативы.)

Я нашел сценарий bash, чтобы начать работу, но я не знаю, какие параметры VLC подключаются к скрипту.

Я хочу использовать переменный битрейт или 64 кбит / с. Частота дискретизации может составлять 44100 (или ниже). Я не выводю видео, поэтому я не уверен, что VLC требует этих параметров.

Может ли кто-нибудь помочь мне исправить этот сценарий для удовлетворения моих потребностей?

#!/bin/sh vcodec="mp4v" acodec="mp4a" bitrate="1024" arate="128" mux="mp4" vlc="/usr/bin/vlc" if [ ! -e "$vlc" ]; then echo "Command '$vlc' does not exist" exit 1 fi for file in "$@"; do echo "=> Transcoding '$file'... " dst=`dirname "$file"` new=`basename "$file" | sed 's@\.[az][az][az]$@@'`.$mux $vlc -I dummy -q "$file" \ --sout "#transcode{vcodec=mp4v,vb=1024,acodec=mp4a,ab=128}:standard{mux=mp4,dst=\"$dst/$new\",access=file}" \ vlc://quit ls -lh "$file" "$dst/$new" echo done 

3 Solutions collect form web for “сценарий оболочки для пакетного преобразования M4V в MP3 с использованием VLC?”

Вот как использовать ffmpeg :

 $ ./ffmpeg -i testing.m4v -b:a 192K -vn testing.mp3 

Или переменная скорость передачи:

 $ ./ffmpeg -i testing.m4v -q:a 0 -map a testing.mp3 

Версия ffmpeg

 $ ./ffmpeg -version ffmpeg version N-56896-ga927276 built on Oct 5 2013 05:42:36 with gcc 4.6 (Debian 4.6.3-1) configuration: --prefix=/root/ffmpeg-static/64bit --extra-cflags='-I/root/ffmpeg-static/64bit/include -static' --extra-ldflags='-L/root/ffmpeg-static/64bit/lib -static' --extra-libs='-lxml2 -lexpat -lfreetype' --enable-static --disable-shared --disable-ffserver --disable-doc --enable-bzlib --enable-zlib --enable-postproc --enable-runtime-cpudetect --enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-gray --enable-libass --enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --enable-libvpx libavutil 52. 46.100 / 52. 46.100 libavcodec 55. 34.100 / 55. 34.100 libavformat 55. 19.100 / 55. 19.100 libavdevice 55. 3.100 / 55. 3.100 libavfilter 3. 88.101 / 3. 88.101 libswscale 2. 5.100 / 2. 5.100 libswresample 0. 17.103 / 0. 17.103 libpostproc 52. 3.100 / 52. 3.100 

Рекомендации

  • Как конвертировать MP4-видео в MP3-аудио с помощью ffmpeg?
  • wiki: кодировка VBR (переменная скорость передачи) mp3 audio
  • FFmpeg, encode mp3

Вот что я использовал. Благодаря slm для справки ffmpeg. Я помещаю этот код в цикл.

 #!/bin/sh arate="64K" ext="mp3" app="/usr/bin/ffmpeg" if [ ! -e "$app" ]; then echo "Command '$app' does not exist" exit 1 fi for file in "$@"; do echo "=> Transcoding '$file' ..." dst=`dirname "$file"` new=`basename "$file" | sed 's@\.[az][az][az]$@@'`.$ext $app -i "$file" -b:a $arate -vn "$dst/$new" ls -lh "$file" "$dst/$new" echo done 

Оно работает. Однако в моем имени файла есть ошибка. Я еще не исправил это. Выходные файлы называются blahblah.m4v.mp3 вместо blahblah.mp3.

Работает красиво, спасибо

Оно работает. Однако в моем имени файла есть ошибка. Я еще не исправил это. Выходные файлы называются blahblah.m4v.mp3 вместо blahblah.mp3.

 #!/bin/sh arate="64K" ext="mp3" app="/usr/bin/ffmpeg" if [ ! -e "$app" ]; then echo "Command '$app' does not exist" exit 1 fi for file in "$@"; do echo "=> Transcoding '$file' ..." dst=`dirname "$file"` new=`basename "$file" | sed 's@\.[az][a-z0-9][a-z0-9]$@@'`.$ext $app -i "$file" -b:a $arate -vn "$dst/$new" ls -lh "$file" "$dst/$new" echo done 

Я уверен, что будет лучший способ, но позволяющий 0-9 в регулярном выражении, а также средства .m4v и .mp4 и т. Д. Будут работать.

  • toggle vlc fullscreen с использованием dbus и mpris
  • Как захватить аудио с интерактивных веб-страниц с помощью VLC?
  • зачем нужен пакет qt4 для запуска vlc-плеера?
  • Как отключить вывод VLC в режиме командной строки?
  • Как заставить VLC напрямую играть в iso-файл?
  • Чрезвычайно громкая трещина и искаженный звук по S / PDIF с использованием ALSA
  • Получение совместной работы VLC и Remmina
  • Как запустить проигрыватель VLC в корне
  • Посмотреть название песни на терминале
  • Почему нам нужно ждать видео (через долю samba) в VLC?
  • Включить RTSP в iptables
  • Interesting Posts

    Упаковка deb: как обрабатывать потенциально отсутствующие зависимости

    Как использовать 64-битный процессор в KVM?

    Сеть Red Hat (RHN) и обновления пакетов

    build-dep firefox не работает на Linux Mint

    Как передать вывод команды нескольким программам

    Не удалось установить «libdvdcss» с yum после обновления на «Fedora 20 Heisenburg»

    Как добавить разрешение группы только для чтения в папку, у которой уже есть группа по умолчанию, и унаследовать ее для всех вновь созданных файлов и папок?

    Многозадачность FreeBSD и других дистрибутивов Linux

    Почему некоторые файлы и папки скрыты?

    Как записывать пропускную способность сети на порт в течение длительного периода времени

    systemd, EnvironmentFile, повторное использование переменных – как?

    Пользовательский драйвер для клавиатуры GNU / Linux 4.1.0-rc8 (Fedora)

    Отключение su – <user1>

    Qsub для любого узла с более чем n ядрами

    «Web_browser & disout»: все еще видны данные

    Linux и Unix - лучшая ОС в мире.