Показаны сообщения с ярлыком ffmpeg. Показать все сообщения
Показаны сообщения с ярлыком ffmpeg. Показать все сообщения

2015-09-08

How to convert *.m4a to *.mp3 on Mac? The unix-way

Как сконвертировать файлы *.m4a в *.mp3 в MacOS? Первый способ - встроенный, с использованием iTunes, и хоть это и не unix-way, ради справедливости приведу и его.

В iTunes идем в меню iTunes -> Настройки -> Настройки импорта -> Импортер -> выбираем "Кодер MP3" (по умолчанию там "Кодер AAC"), сохраняем. Затем выбираем интересующие треки и в контекстном меню используем пункт "Создать версию в формате MP3". В каталоге с файлами *.m4a появятся и *.mp3, которые можно скопировать куда нужно, а затем удалить их через iTunes, чтобы в нем не остались битые ссылки.

А теперь как правильно. Копируем свежий ffmpeg, например, этот, распаковываем бинарник (мне для этого пригодился "The Unarchiver", он есть в App store, бесплатный, встраивается в Finder). Это всё, можно конвертировать. Открываем консоль, и запускаем что-то вроде этого:


/path/to/ffmpeg -i /path/to/file.m4a -acodec libmp3lame -ab 160k /path/to/file.mp3

Для конвертации всех файлов в текущем каталоге можно использовать такой скрипт:


for i in *.m4a; do /path/to/ffmpeg -i "$i" -acodec libmp3lame -ab 160k "${i%.*}.mp3"; done

Для удобства я добавил alias в файл .profile, очень удобно. Удачной конвертации!

2013-04-28

Нафаршированный ffmpeg : готовый deb-пакет и немного записи

Примерно год назад я писал о том, как установить ffmpeg со всевозможными кодеками в Ubuntu 12.04. Это работает и в 13.04, без изменений. Но, так как я люблю моих читателей, и предполагаю, что им лень собирать это самостоятельно, предлагаю скачать уже собранный под 32-битную версию Ubuntu 13.04 пакет.
Вот ссылка.

P.S. Прошу прощения, установленный пакет у меня не заработал на машине, где предварительно я не установил всю ту кучу библиотек, нужную для сборки. Так что лучше из исходников собирать.

P.S. Кстати, а вы знали, что с помощью ffmpeg можно записывать то, что слушаете, к примеру в интернете? Например, с Яндекс.Музыки. Я раньше писал о том, как это сделать, так вот что касается pavucontrol - обязательно, а вместо заморочек с audacity можно сделать так:

ffmpeg -f alsa -ac 2 -i pulse -acodec libmp3lame -aq 4 file.mp3

Это даст нам файл mp3 с переменным битрейтом 140-185 (-aq 4). О том, какие битрейты можно выставить, прочтите здесь. Самое сложное - вовремя включить и выключить запись. Я пробовал записывать подряд, и потом разбить трек на части с помощью mp3splt по секунде тишины, но 1) возникают артефакты в месте разрыва и 2) иногда в композициях бывает тишина, так надо. Вобщем, пока думаю, как бы это автоматизировать, а вы присоединяйтесь!

2012-04-01

Установка "нафаршированного" ffmpeg в Ubuntu


sudo apt-get build-dep ffmpeg
sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev libopenjpeg-dev \
libx264-dev libxvidcore-dev libx264-dev libopenjpeg-dev   libasound2-dev \
libdc1394-22-dev libgsm1-dev libimlib2-dev libraw1394-dev libsdl1.2-dev \
libschroedinger-dev libspeex-dev libtheora-dev libvorbis-dev libx11-dev \
libxext-dev libxvmc-dev quilt texi2html zlib1g-dev libfaad-dev libdirac-dev \
libfaac-dev libmp3lame-dev frei0r-plugins-dev libdirac-dev libfaac-dev
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg-$(date +"%m-%d-%y")
cd ffmpeg-$(date +"%m-%d-%y")
./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc \
--enable-x11grab --enable-gray --enable-small --enable-runtime-cpudetect \
--enable-hardcoded-tables --enable-memalign-hack --enable-bzlib --enable-frei0r \
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libdc1394 \
--enable-libfaac --enable-libgsm --enable-libopenjpeg --enable-libschroedinger \
--enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx \
--enable-libx264 --enable-libxvid --enable-zlib --enable-pic --enable-sram \
--enable-libmp3lame \
--enable-extra-warnings
make
sudo make install
Примечание: в LinuxMint 15 XFCE x64 потребовалось включить репозитарии с исходниками (по умолчанию выключены) и установить libjack-dev отдельно отсюда

2010-06-28

Видео для android

Устройства на базе Google Android воспроизводят видео определенного формата (mp4). Чтобы сжать кино для просмотра можно использовать ffmpeg, собранный с кодеком x264.

К примеру, такой скрипт в арсенале андроидовода может прижиться. Назовем его android.sh, сделаем исполняемым и положим в какую-нибудь папку, проходящую по данным PATH.



Теперь сжатие файла выполняется командой:
android.sh FileName
или, если нужно выбрать звуковую дорожку
android.sh FileName 1

Пока что мне не попадалось видео, которые бы конвертировались криво. Ура ffmpeg-у.

А как быть с субтитрами?

Единственный плейер, который умеет играть видео с субтитрами (из тех, что мне известны) - mVideoPlayer (даже умеет их сдвигать на указанное кол-во миллисекунд в обе стороны). Единственный тип субтитров, которые он кушает - SRT. Соответственно, в кодировке UTF-8.
Значит, нужно конвертировать субтитры из других форматов. Специальные программы есть в репозитариях, но уже на третьем файле линуксоид подумает: а нельзя ли как-то это автоматизировать? Я искал что-нибудь консольное, и не нашел.
Пришлось, как всегда, брать python в руки. Пока что соорудил конвертировщик ASS в SRT, понадобится другой формат переводить - думаю, и с ним проблем не будет. На выходе отдает файл в исходной кодировке. Вот что получилось на скорую руку (создайте файл подобный предыдущему, например subconv.py)



Теперь файл конвертирую так:
subconv.py -f FileSub.ass
и создается FileSub.srt в той-же папке.
Для конвертирования пачки использую цикл:
for i in *.ass; do subconv.py -f "$i"; done

P.S. Буквально вчера было обновление mVideoPlayer, в котором добавилась поддержка субтитров SSA и ASS. Теперь стало еще легче.

Сборка свежего ffmpeg

Заметка на память. Сборка свежего ffmpeg с кодеком x264. Взято здесь.

sudo apt-get install subversion
mkdir ~/src
cd ~/src
svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
sudo apt-get install checkinstall
sudo apt-get install libfaac-dev libfaad-dev libmp3lame-dev \
libtheora-dev libxvidcore-dev libvorbis-dev libogg-dev libdirac-dev \
libopenjpeg-dev libschroedinger-dev libspeex-dev libgsm1-dev yasm \
libopencore-amrnb-dev libopencore-amrwb-dev libdc1394-22-dev
sudo apt-get install git-core
git clone git://git.videolan.org/x264.git
cd x264
./configure
make
sudo checkinstall --fstrans=no --install=yes --pkgname=x264 \
--pkgversion "1:0.svn`date +%Y%m%d`-0.0ubuntu1" --default
sudo ./configure --enable-gpl --enable-nonfree --enable-pthreads \
--enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libtheora \
--enable-libx264 --enable-libxvid --enable-x11grab --enable-libdirac \
--enable-libopenjpeg --enable-libschroedinger --enable-libspeex \
--enable-libgsm --enable-libvorbis --enable-libopencore-amrnb \
--enable-libopencore-amrwb --enable-libdc1394 --enable-version3
sudo make
sudo checkinstall --fstrans=no --install=yes --pkgname=ffmpeg \
--pkgversion "3:0.svn`date +%Y%m%d` -12ubuntu3" --default
P.S. Если процессе сборки ffmpeg пишет так

.../libavcodec.so: undefined reference to `x264_encoder_open_94'
collect2: ld returned 1 exit status
make: *** [ffmpeg_g] Ошибка 1
возможно установлены лишние пакеты:

sudo apt-get purge x264 libx264-dev

2009-09-02

Если FFmpeg при кодировании ругается на нехватку кодеков

На днях решил перекодировать пару видяшек для PSP жены, воспользовавшись ffmpeg, на что последний отреагировал, разведя руками - не знаю, мол, кодека mpeg4.
Стало ясно, что в системе установлен не полный набор кодеков. Чтобы решить эту проблему, делаем так:

Удаляем полностью ffmpeg и обновляем данные репозитариев:
$ sudo apt-get purge ffmpeg
$ sudo apt-get update

Устанавливаем полные библиотеки кодеков, они попросят удалить предыдущие. ОК.
$ sudo apt-get install libavcodec-unstripped-* libavdevice-unstripped-* libavformat-unstripped-* libavutil-unstripped-* libpostproc-unstripped-* libswscale-unstripped-*

Возвращаем ffmpeg:
$ sudo apt-get install ffmpeg

А вот скрипт, чтобы кодировать avi-шки в формат, который переваривает PSP:

#!/bin/bash
[ -d psp ] || mkdir psp
ffmpeg -i "$1" -f psp -s 368x208 -aspect 16:9 -vcodec mpeg4 -b 500k -acodec libfaac -ab 96k -ac 2 "psp/$1.MP4"

В интернетах встречается подобный скрипт, в котором написано "-acodec aac" - не верьте, будет ругаться.