Потоковое видео на iPhone
Как я уже ранее писал, вещать видео на iPhone можно было начиная с самых первых версий прошивки в псевдо-потоковом режиме, как, собственно, и делал популярный сервис YouTube. Т.е. через сеть поверх HTTP-протокола отдавался mp4-файл, а сервер умел отрабатывать параметры, передаваемые плеером и формировать заголовки формата в случае, если пользователь желал посмотреть ролик с середины.
Подробнее »»
Скорость обработки видео при помощи x264
По мере работы над HDin.TV обнаружилась неприятная особенность – если скорость обработки одного сезона сериала из 24 серий для tulavideo.net составляла чуть более, чем половину суток, то в случае использования HD-разрешения (720p) сезон кодировался порядка половины недели (примерно 3-4 часа на серию). Это, разумеется, не могло не расстраивать, поскольку объем работы по перекодировке предстоял и еще предстоит весьма значительный.
Подробнее »»
Динамические водяные знаки на видео
Интересный момент произошел в развитии направления обработки и преобразования видео. Возникла задача по наложению не статической картинки водяных знаков, а полноценного видеоролика (например, титров или рекламы или динамического лого).
На входе у нас есть:
- начальный видеоролик
- последовательность кадров титров для наложения в виде серии PNG-кадров (можно использовать и видео, но возникают вопросы с альфа-каналом)
На выходе надо получить видеоролик с наложенной последовательностью кадров (для простоты в дальнейшем я буду называть эту последовательность маской, хотя это и не совсем терминологически правильно).
Подробнее »»
Текущий проект
Сейчас все силы и чаяния брошены на работу с ТулаВидео – региональным медиа-сайтом. В принципе, это сумма того, чем пришлось заниматься почти все лето.

Подробнее »»
Видео для iPhone – все же сделаем получше
После краха с отработанной методикой сжатия h.264-кодеком, которая давала для Flash-а весьма недурственный результат, захотелось понять, почему iPhone, а, точнее, Appl-овский декодер столь привердлив, нежели VLC и прочие. После серии экспериментов удалось исключить пару параметров, которые не давали заметного выигрыша по сжатию, но весьма раздражали iPhon-овский медиа-проигрыватель.
Подробнее »»
iPhone и ffmpeg
Простая с виду задача – переконвертировать видео для просмотра на вышеупомянутом мобильном устройстве – таила в себе много проблем.
Начиная с того, что подсмотренный в интернете секретный прием кунфу двупроходного сжатия заработать не захотел:
1 2 3 | #!/bin/bash ffmpeg -i $1 -y -an -pass 1 -vcodec libx264 -s 480x320 -aspect 16:9 -threads 4 -b 256kbps -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -me epzs -subq 1 -trellis 0 -refs 1 -bf 16 -b_strategy 1 -coder 1 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 256K -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 $2 ffmpeg -i $1 -y -acodec libfaac -ab 64k -pass 2 -vcodec libx264 -s 480x320 -aspect 16:9 -threads 4 -b 256kbps -flags +loop -cmp +chroma -partitions +parti8x8+parti4x4+partp8x8+partp4x4+partb8x8 -flags2 +brdo+dct8x8+wpred+bpyramid+mixed_refs -me umh -subq 7 -trellis 1 -refs 6 -bf 16 -directpred 3 -b_strategy 1 -bidir_refine 1 -coder 1 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 256K -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 $2 |
Устройство страшно сопротивлялось QT-вской картинкой. Выход был найден в удалении всех параметров кодека (видимо, какой-то из них и вводил декодер в ступорное состояние). Качество видео ухудшилось, но показывает
1 2 | ffmpeg -i $1 -y -an -pass 1 -vcodec libx264 -s 480x320 -aspect 16:9 -threads 4 -b 256kbps -qmin 10 -qmax 51 $2 ffmpeg -i $1 -y -acodec libfaac -ab 64k -pass 2 -vcodec libx264 -s 480x320 -aspect 16:9 -threads 4 -b 256kbps -qmin 10 -qmax 31 $2 |
В копилку проектов
За последнее время накопилось достаточно работ, которые подошли к определенной вехе и вполне достойны, чтобы быть представлены в портфеле проектов.
Подробнее »»
HD видео или что-то около того…
Сегодня интернет у большинства быстрый, сети растут, провайдеры пухнут (некоторые – от голода, но туда им и дорога). При достаточно серьезном канале среднестатистический сферический пользователь в вакууме не то что не заморачивается всяческими там программками для скачивания и кавалерийским галопом по сайтам, а частенько все потребляет из сети напрямую. Где-то оттуда же растут ноги явления IPTV.
Возьмём простейший видеопрокат. Там все банально – заплатил денежку, посмотри фильм. Что мешает повторит подобное в сети? Правильно, ничего, кроме злобных пиратов, которые тут же стырят видео и начнут клонировать везде где только можно. Остаётся уповать на привередливость и законопослушность потребителя. Впрочем, все это лирика, перейдём к технике.
Вещание с вэб-камеры на сайте
Определённого рода задачи требуют демонстрации видео на сайте, получаемого посредством вэб-камеры. В общем случае эта задача решается дублированием кода с технической страницы камеры (мы рассматриваем случай использования Ethernet-камеры, способной самостоятельно формировать видео-поток, в случае более дешёвых решений алгоритм немного меняется) на сайт и камера напрямую отдаёт картинку посетителю. К сожалению, мощности камер и ширина каналов, которые они используют, очень часто бывают ограничены, а в случае весьма посещаемого сайта количество посетителей может быть вполне немаленьким.
Медиатека. Еще пара фишек
Ну, допустим, нам нужно не просто перекодировать ролики, но и еще добавлять в них водяные знаки – а то мало ли кто покусится на наш уникальный видео-контент. Делается это очень просто – в командную строку ffmpeg добавляется параметр -vhook ‘/usr/local/lib/vhook/watermark.so -m 1 -t 000000 -f watermark.png’. В данном случае картинка представляет собой логотип, размещенный на черном фоне в правом верхнем углу, причем черный (как указывает параметр -t) будет принят за базовый цвет, который потом будет подменен на данные из кадра. Подробнее об этом можно прочитать в документации по перехватывающим модулям ffmpeg.
Второй нюанс – если браться за перекодирование всего и вся, то мигом столкнемся с тем, что lame не воспринимает WMA-формат, что очень печально. На выручку придет тот же ffmpeg – при помощи него можно перекодировать wma в mp3, например, так – ffmpeg -i ‘in.wma’ -acodec libmp3lame -ab 32k -ac 2 -ar 22050 ‘out.mp3′.
Следующим логичным вопросом будет – а нужен ли нам вообще lame? Наверное, не нужен – ffmpeg все равно его будет использовать по необходимости.


