Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Конвертирование в AAC  (Прочитано 3041 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн iiiopot

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
  • Ничто не истина (с) Ecio Auditore
    • Просмотр профиля
Конвертирование в AAC
« : 20 Июня 2014, 09:37:05 »
Доброго времени суток.
Подскажите, пожалуйста, как можно переконвертировать FLAC (или любой другой lossless) в aac (*.m4a) кодеки AAC VBR 1.0+ или QAAC 1.31+.
Интересуют именно эти кодеки. Пробовал Sound Converter но он конвертирует вроде только в FAAC, DeadBeaF то же в Nero FAAC.
FAAC очень сильно проигрывает в качестве.

Либо же возможность добавить кодеки в вышеуказанных конвертеры.

Заранее благодарен.
« Последнее редактирование: 21 Июня 2014, 05:39:44 от iiiopot »
NB Asus Intel® Core™ i7-4510U\7.2 GiB\Ubuntu 18.04.1 LTS\64-bit\GNOME 3.28.2\4.15.0-43-generic

chemtech

  • Гость
Re: Ковретиртирование в AAC
« Ответ #1 : 20 Июня 2014, 09:53:55 »

Оффлайн arch!ver

  • Старожил
  • *
  • Сообщений: 1260
    • Просмотр профиля
Re: Ковретиртирование в AAC
« Ответ #2 : 20 Июня 2014, 16:02:01 »
iiiopot,
Если не смутит консольный кодировщик, то смотрите здесь: Ключи параметров FFmpeg для Аудио - под таблицей находится перечень популярных энкодеров...
Если хотите кодировать в AAC в профессиональном качестве, с несвободными энкодерами - Libfaac AAC, Libfdk-aac AAC, то нужно будет собрать FFmpeg с поддержкой этих энкодеров - это не сложно и описано как именно делать... Если устроит обычное качество с низким профилем сложности кодирования, то вполне сойдёт < aac -strict experimental >, только битрейт повыше поставте...
Установка и сборка официального FFmpeg - есть ссылка в начале мануала...

Не рекомендую использовать энкодер VisualOn AAC encoder - низкое качество, заточен для кодирования на слабые мобильные телефоны и пр.
« Последнее редактирование: 20 Июня 2014, 16:04:51 от archiver »

Оффлайн iiiopot

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
  • Ничто не истина (с) Ecio Auditore
    • Просмотр профиля
Re: Ковретиртирование в AAC
« Ответ #3 : 21 Июня 2014, 05:39:01 »
Большое спасибо за быстрый ответ.
В общем прочитал мануал, гайд и поехал.
ffmpeg собрал следующим образом:
PATH="$PATH:$HOME/bin" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
  --prefix="$HOME/ffmpeg_build" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --bindir="$HOME/bin" \
  --extra-libs="-ldl" \
  --enable-gpl \
  --enable-libass \
  --enable-libfdk-aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libtheora \
  --enable-libvorbis \
  --enable-nonfree \
  --enable-x11grab

После выполнения команды:
echo "MANPATH_MAP $HOME/bin $HOME/ffmpeg_build/share/man" >> ~/.manpath
. ~/.profile
заработал
man ffmpegи
ffmpeg
Выполняю команду:
iiiopot@WorkPC:~/Загрузки/Баста - Дискография/1. Альбомы/04. Баста 4 (2013, ООО ''Газгольдер Рекорд'', CDG 020-2013)$ ffmpeg -i 02\ Это\ дороже\ денег.flac -c:a libfdk_aac -b:a 500k  02\ Это\ дороже\ денег.m4aполучаю:
(Нажмите, чтобы показать/скрыть)

суть ясна  - нет видео потока, но его ведь там быть и не должно и никаких параметров ffmpeg касательно видео не передаю.
Подскажите, как быть в данном случае. В пример нигде не увидел параметр игнорирование видео. Я так понимаю что наоборот ffmpeg должен обрабатывать только те потоки, кодеки которых я указал при вводе команды.

Заранее благодарен.
NB Asus Intel® Core™ i7-4510U\7.2 GiB\Ubuntu 18.04.1 LTS\64-bit\GNOME 3.28.2\4.15.0-43-generic

chemtech

  • Гость
Re: Конвертирование в AAC
« Ответ #4 : 21 Июня 2014, 07:50:46 »
Попробуйте так
ffmpeg options: -acodec libfaac -ab 192k produce 150kbit files?
Там ниже есть пример

Оффлайн iiiopot

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
  • Ничто не истина (с) Ecio Auditore
    • Просмотр профиля
Re: Конвертирование в AAC
« Ответ #5 : 23 Июня 2014, 04:45:21 »
Всем спасибо за помощь!

В общем, я видать невнимательно читал man ffmpeg :(

Сегодня решил глянуть его еще раз повнимательнее и ...
Цитировать
-vn (output)
           Disable video recording.

ffmpeg -i input.flac -c:a libfdk_aac -b:a 500k  -vn output.m4a
Все прошло удачно.
Остался еще один вопрос. А можно ли обработку сделать пакетной? Скажем *.flac в *.m4a с копированием имени?

Если использовать:
iiiopot@WorkPC:~/$ for f in *.flac; do ffmpeg -i "$f" -c:a libfdk_aac -b:a 500k -vn $f.m4a; done
Получаем следующее:
Input #0, flac, from '17 Это все (ft. хор ''Адели'').flac':
  Metadata:
    TITLE           : Это все (ft. хор ''Адели'')
    ALBUM           : Баста 4
    ARTIST          : Баста
    GENRE           : Hip-Hop
    DATE            : 2013
    track           : 17
  Duration: 00:05:28.29, start: 0.000000, bitrate: 723 kb/s
    Stream #0:0: Audio: flac, 44100 Hz, stereo, s16
    Stream #0:1: Video: mjpeg, yuvj444p(pc), 500x500 [SAR 600:600 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
    Metadata:
      comment         : Cover (front)
[NULL @ 0x1f6aa40] Unable to find a suitable output format for '17'
17: Invalid argument

И так для всех треков, я так понимаю это из за пробелов в названии треков. Если кодировать пофайлово, то можно использовать "\", а как поступить в данном случае? Резать, а затем склеивать строки?
« Последнее редактирование: 23 Июня 2014, 08:05:24 от iiiopot »
NB Asus Intel® Core™ i7-4510U\7.2 GiB\Ubuntu 18.04.1 LTS\64-bit\GNOME 3.28.2\4.15.0-43-generic

Оффлайн Lego777

  • Любитель
  • *
  • Сообщений: 79
  • Puppyrus user
    • Просмотр профиля
Re: Конвертирование в AAC
« Ответ #6 : 23 Июня 2014, 08:07:34 »
#!/bin/sh
mkdir conv
for f in *.avi *.mkv *.mp4 *.flac ;
do
xterm -e ffmpeg -i "$f" -c:a libfdk_aac -b:a 500k  -vn  conv/$f.m4a
done
Может так, например? Скрипт запустить в папке с флаками, там же создасться папка conv и уже в неё будут "складированы" одноименные .m4a.

Оффлайн iiiopot

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
  • Ничто не истина (с) Ecio Auditore
    • Просмотр профиля
Re: Конвертирование в AAC
« Ответ #7 : 23 Июня 2014, 08:29:47 »
Я так понял проблема в другом.
Имя файла следующее "02 Это дороже денег.flac".

Пробелы нужно экранировать:
ffmpeg -i 02\ Это\ дороже\ денег.flac -c:a libfdk_aac -b:a 500k  -vn 02\ Это\ дороже\ денег.m4a
Если этого не сделать:
ffmpeg -i 02 Это дороже денег.flac -c:a libfdk_aac -b:a 500k  -vn 02 Это дороже денег.m4a, то ffmpeg воспринимает 02 как некий параметр. Соответственно ругается. Естественно в $f имя храниться без "\".

Пользователь решил продолжить мысль 23 Июня 2014, 08:49:50:
Сообразил!

for f in *.flac; do ffmpeg -i "$f" -c:a libfdk_aac -b:a 500k -vn "$f.m4a"; done

Всем спасибо за помощь!!
« Последнее редактирование: 23 Июня 2014, 08:49:50 от iiiopot »
NB Asus Intel® Core™ i7-4510U\7.2 GiB\Ubuntu 18.04.1 LTS\64-bit\GNOME 3.28.2\4.15.0-43-generic

 

Страница сгенерирована за 0.02 секунд. Запросов: 22.