27
Ноя

Второй шикарный баг Adobe Flash Player

Написал Максим Крентовский в Общее

Видеоподсистема AFP не умеет правильно работать с видео с неквадратными пикселами со специфичным соотношением стороны этих самых пикселей. В результате изображение искажается и это очень неприятно. В остальных плеерах все хорошо.

Комментарии отключены
19
Мар

Ошибка в Adobe Flash Player

Написал Максим Крентовский в Деятельность

В процессе создания автоматизированного перекодировщика пришлось наступить в одну очень неприятную проблему. Беда в том, что Adobe Flash Player очень ревностно относится к наличию дополнительной мета-информации в mp4-файле. А именно — при наличии в ролике разбиения на главы проигрывание не начинается до тех пор, пока ролик не загрузится целиком в случае использования nginx + mod_h264_streaming, или начинает проигрывание, но показывает неверную продолжительность ролика и умирает при попытке проигрывания с произвольного места в случае erlyvideo.

Активные попытки выяснить как удалить из mp4 информацию о главах завершились неуспешно — было найдено куча решений «как добавить» а вот с удалением было сложно. В результате родилось наколенно-костыльное решение: сначала перепаковать видео в MKV-контейнер с удалением оглавления, а затем перепаковать обратно в MP4. Процесс занимает не более 15 секунд, что вполне терпимо.

В результате, все видео, обработанное нижеприведенным сценарием, спокойно проигрывается в Flash Player:

1
2
3
4
#!/bin/bash
mkvmerge --no-chapters -o tmp.mkv $1
ffmpeg -y -i tmp.mkv -vcodec copy -acodec copy -f mp4 $1
rm tmp.mkv

В процессе поиска этого бага были проведены следующие мероприятия:

  • вдоль и поперек излазан код плеера
  • проверены и отработаны различные настройки перекодирования
  • менялся контейнер с ОС (с 64-хбитной на 32-х)
  • был обновлен, проверен и перепроверен mod_h264_streaming
  • были перепроверены настройки nginx
  • был установлен и опробован erlyvideo
  • с дебаггером внутрь Flash Plugin не лезли, но мысль была

Поиск бага длился почти рабочую неделю в фоновом режиме (2-3 часа в сутки).

Комментарии отключены
15
Фев

В процессе разработки видео-чата ViCo столкнулся с одной очень интересной проблемой. Было необходимо реализовать элемент на Flash/Flex, захватывающий камеру пользователя и отсылающий поток на RTMP-сервер erlyvideo.

Подробнее →

28
Янв

Как известно, видео на стороне клиента можно проигрывать большим количеством вариантов:

  • через Flash-проигрыватель — наверное, самый распространенный вариант;
  • через Silverlight-проигрыватель;
  • через ActiveX-элемент, реализуемый каким-либо установленным проигрывателем в системе (Windows-метод);
  • через тег video согласно стандарту HTML5 (если браузер поддерживает);
  • через системный видео-проигрыватель (например, VLC);
  • посредством медиа-центра (например, Plex и XBMC).

Соответственно, чем больше средств предоставлено пользователю на сайте, тем больше вероятность, что он с комфортом посмотрит интересующий его видеоролик (сейчас мы сознательно упрощаем вопрос, игнорируя тот факт, что пользователь может хотеть смотреть видео на нетбуке, таблетке или смартфоне). Однако в крайнем случае можно использовать Flash-проигрыватель, как самый распространенный вариант.
Подробнее →

Максим Крентовский
системный архитектор
E-mail / GTalk: mkrentovskiy@gmail.com
Skype: mkrentovskiy