| Конвертирование видео FLV, AVI, 3GP для телефона. FFMPEG - примеры и параметры конвертирования. |
|
|
|
| OS - Ubuntu |
| Автор: Sorbing 13.04.11 19:24 |
|
Иструмент для конвертирования, однозначно FFMPEG - консольная /мы ведь под линуксом/ утилита с богатым функционалом и открытым кодом. Инструменты типа "в два тыка батоном" решил не использовать, поскольку ".. решил разобраться подробнее с конвертацией видео.." да и возможности таких инструментов уступают. Что же нужно:
Переходим к делу.. Установка FFMPEG + кодек H263.apt-get install ffmpeg x264 (( неа, так просто не получиться, придется ручками собирать. ПодготовкаСтавим кодек x264Ставим LIBVPXСтавим кодек MP3 - libmp3lameСтавим FFMPEGУфф.. ставится все около часа.. Можно также посмотреть другие интструкции по установке:
Опции FFMPEG.Посмотреть все поддерживаемые форматы видео и аудио (доступные кодеки и их возможности): Расшифровка сокращений описывающих возможности кодека:
Для одного фидео-файла не известного формата могут понадобиться два кодека, поскольку любой видео-файл состоит из аудио и видео потока. Найти информацию о поддержке 3gp: Посмотреть информацию (параметры кодирования) видео/аудио файла: Синтаксис:ffmpeg [[infile_options][-i infile]]... {[outfile_options] outfile}... Параметры конвертирования FFMPEG.Базовые:-i video.avi - имя исходного файла; -y - заменить файл при кодировании, если он присутствует; -ss 00:02:00 - смещение по времени от начала файла (position). Здесь: пропустить первые 2 мин (сдвиг в сек.). Задается в сек. или временем в формате: hh:mm:ss[.xxx] -t 300 - длительность видео/аудио (duration). Здесь: кодировать только 5 мин. файла. Задается в сек. или временем в формате: hh:mm:ss[.xxx] -fs 2048 - установить максимальный размер выходного файла. Похоже что в байтах. -vpre ipod320 - задать файл с предустановленными параметрами конвертирования (preset). Значения: slow, medium, ipod320, ipod640 (). !!! При задании предустановок типа -vpre ipod320 или -vpre ipod640, обязательно перед ними задайте базовую предустановку типа -vpre slow ИЛИ -vpre medium -threads 0 - колличество ядер в компьютере. Значения: 0 - 4. 0 - автоматически определить количество ядер процессора и использовать их в процессе работы. Аудио:-acodec - аудио-кодек; // libfaac, aac, libmp3lame, -ab 128k - аудио битрейт; -ar 22050 - частота дискретизации звука (Гц); Обязательно кратное 11кГц. Значения: 8000, 11025, 16000, 22050, 44100; -ac 1 - колличество каналов в аудиопотоке (1 - моно, 2 - стерео); -an - БЕЗ звука (при первом проходе кодирования например, т.к. звук нам не нужен или если хотим убрать звук). Видео:-vcodec - указать каким кодеком кодировать видео; // vibx264-f avi - формат исходящего видео-файла (контейнер для видео) (можно опустить эту опцию и задавать формат в расширении файла). Пример: -f dvd - контейнер VOB. -s qvga - размер картинки (под какое расширение экрана нужно кодировать). Или так: -s 320x240 -r 20 - кадров в сек. (FPS); // 1-30, default = 25. -b 200k - средний битрейт кодирования видеопотока (bit/s). Здесь: установить битрейт в 100 kbps. Примеры: 30k, 200k, 512k, 1024k -bt 4000k - допуск значения видео битрейта. Хз что это... -maxrate 9000k - маскисмальный битрейт кодирования видеопотока. -vframes 5 - задать лимит видео кадров. -target vcd - тип выходного файла (задает предустановленые опции выходного видео потока: bitrate, codecs, buffer sizes). Значения: "vcd", "svcd", "dvd", "dv", "dv50", "pal-vcd", "ntsc-svcd", ... -aspect 4:3 - соотношение сторон. Значения: 4:3, 16:9, 1.3333-vf crop=width:height:x:y - обрезка файла (краев). Размер и смещение. Отмеряем в px. -vf pad=width:height:x:y:color - установить отступ от края, смещение и цвет подложки. Отмеряем в px. -me_range 20 - ??? -deinterlace - ??? -pass 2 - - задать этот параметр, вы будете конвертировать видео в 2 этапа. -pass 1 - первый этап, -pass 2 - второй проход (для получения фиксированных размеров битрейта). -g 24 - группировка фреймов для задания шага перемотки. Если значение -g = -r, это означает что шаг перемотки = 1 сек. -vn - отключить запись видео. -map 0.0 - указываем какой видеопоток кодировать. -map 1.0 - указывает какой аудиопоток кодировать. Например в одном файле может быть: 0.0 - видеопток, 0.1 - русская аудиодорожка, 1.0 - английская аудиодорожка Подробнее про параметры конвертирования...Доступные размеры "картинки" для формата 3GP: qcif - 176x144, 352x288, 640x480, Доступные размеры картинки для конвертирования видео: sqcif - 128x96; qcif - 176x144, cif - 352x288, 4cif - 704x576, - qqvga160x120, cga - 320x200, qvga - 320x240, vga - 640x480, svga - 800x600, xga - 1024x768, uxga - 1600x1200, qxga - 2048x1536, sxga1280x1024, qsxga - 2560x2048, hsxga - 5120x4096, wvga - 852x480, wxga - 1366x768, wsxga - 1600x1024, wuxga - 1920x1200, woxga - 2560x1600, wqsxga - 3200x2048, wquxga - 3840x2400, whsxga - 6400x4096, whuxga - 7680x4800, ega - 640x350, hd480 - 852x480, hd720 - 1280x720, hd1080 - 1920x1080. Доступные форматы-контейнеры: (-f): x11grab, image2 Примеры конвертирования.Задача №1. FLV to 3GP. Размер файла вырос из 38MB до 45 MB Задача №2. FLV to MP4. Конвертировал под андроид с разрешением 320x240. При задании предустановок типа -vpre ipod320 или -vpre ipod640, обязательно перед ними задайте базовую предустановку типа -vpre slow ИЛИ -vpre medium Задача №3. FLV to AVI. Задача №4. Захват видео с дисплея монитора. -f alsa -i pulse - снять звук с микрофона; -f x11grab -i :0.0 - снять видео с монитора номер рас (с первого моника - 0.0); Задача №5. Ужимаем видеофайл -crt N - коэффициент сжатия. По мере увеличения значения увеличивается степень сжатия (но теряется качество!); Обычно N от 18 до 28. -t 5 - время съемки 5 сек; Задача №6. Сохранить кадр из видео в изображение -ss 30 - смещение 30 сек. Вот что мы получили в результате этих манипуляций соответственно:
Соответствия форматов видео - аудио и видео кодекам:AVI Аудио: raw, pcm, mp3, ac3, aac Видео: MPG Аудио: Видео: 3GP Аудио: Видео: FLV Аудио: mp3,pcm,aac Видео: H.263, H.264
Рекоммендации:Перед кодированием убедитесь что выбранный кодек поддерживает именно КОДИРОВАНИЕ: Долго искал сервис для скачивания видео с youtube-а, и понял что оптимальное решение это плагины. Для Chrome-а: Download YouTube Videos as MP4/FLV Поскольку у меня андроид, вот список кодеков и форматов видео, которые поддерживаются Android: H.263: 3GPP (.3gp) и MPEG-4 (.mp4), H.264 AVC: 3GPP (.3gp) и MPEG-4 (.mp4), MPEG-4 SP: 3GPP (.3gp) Предустановки (-vpre) я нашел в каталоге: /usr/local/share/ffmpeg P.S. Не разобрался как указать номер кадра для сохранения, поэтому для сохранения 24-го кадра задавал сдвиг милисекундами. Мож кто подскажет? |
| Последнее обновление: 20.04.11 15:26 |





