Перекодирования видео для Android
Можно сказать по следам этой заметки Программа для конвертации видео под Android в Ubuntu, но предлагаю вариант для любителей консоли или когда нет возможности использовать графическую оболочку.
Использование FFmpeg.
Я использовал старую версию пакета, который был в репозиториях:
$ apt-cache policy ffmpeg
ffmpeg:
Установлен: 4:0.6.2-1ubuntu1.1
На данный момент на сайте ffmpeg.org доступна FFmpeg 0.8.6 «Love».
Стандартный вариант — довольно простой пример конвертирования — получаем видео в формате MPEG-4 ASP («XviD»), и еще обращаем внимания на предупреждения, что кодер «aac» экспериментальный и добавляем параметр «-strict experimental», так как у нас стара версия пакета.
«encoder ‘aac’ is experimental and might produce bad results.
Add ‘-strict experimental’ if you want to use it.
Or use the non experimental encoder ‘libfaac’.»
$ ffmpeg -i источник-video.avi -s 480x320 -vcodec mpeg4 -acodec ac3 -ar 48000 -ac 1 -r 15 -ab 128k -aspect 3:2 получаемое-video.mp4
или
ffmpeg -i источник-video.avi -s 480x320 -vcodec mpeg4 -acodec aac -strict experimental -ac 1 -ar 48000 -r 15 -ab 128k -aspect 3:2 получаемое-video.mp4
или как нам было предложено используем -acodec libfaac, это для старых версий.
Рассмотрим параметры:
-s — размер выходного видео ( 320×240, 640×480, 800×600 и тд)
-vcodec — для Android используем два кодака mpeg4 and h263
- acodec — аудиокодек AAC, для старых версии FFmpeg использывать опцию -acodec libfaac, так же можно использовать ac3.
-ac количество аудио каналов. По default = 1 так как в большинстве телефонов всего один динамик, но по желанию можно и 2 если будете использовать наушники.
-ar- аудио частота дискретизации в герцах. 48 кГц нормальный параметр, тем более что телефон. ( default = 44100 Hz )
-r оптимально 13-15 кадров в секунду, чем больше тем конечно лучше, файл с 30-ми кадрами в секунду будут весить в ~ два раза больше чем файл 15 кадров в секунду.
-ab — битрейт аудио 128 кбит, обычно битрейт не использоваться таким низким, но это для себя и минимизация размера выходного файла. ( default = 64k )
-aspect очевидно, что это соотношение сторон выходного файла.
Скажу сразу что качество не очень, для более качественной кодировки используем кодак H.264 (MPEG-4 AVC), но это повлечет за собой увеличения время кодирования и большую нагрузку на процессор.
$ ffmpeg -i источник-video.avi -s 480x320 -b 384k -vcodec libx264 -flags +loop+mv4 -cmp 256 -partitions +parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -subq 7 -trellis 1 -refs 5 -bf 0 -flags2 +mixed_refs -coder 0 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -qmin 10 -qmax 51 -qdiff 4 -acodec ac3 output-video.mp4