Рубрика «ffmpeg»

Я уверен, что много разработчиков сталкивались с проблемой когда надо максимально быстро воспроизводить огромные видео файлы (4 GB+) на Вашем сайте. Я тоже люблю посмотреть фильмы в онлайн но мне так надоедает ждать, когда он про грузится перед просмотром.

Столкнулся с интересной проблемой а именно с video stream в браузере Internet Explorer 11 который все так обожают. Теперь перейдем к деталям.

Продукт написан на Laravel 5.3, а для транскодирувания видео файла мы используем ffmpeg (создание preview, thumbnail нужных нам размеров, качества + watermark).

Первое на что надо обратить внимание — это атомы. Видео состоит с атомов, в которых храниться информация об субтитрах, главах, видео и аудио и тд… Но особое внимание надо обратить на moov атом. В нем храниться информация как воспроизвести видео, сколько кадров в секунду, какие размеры. Этот атом может лежать где угодно. Если видео маленькое, оно быстро загрузится, в результате уже есть moov атом и система знает как воспроизвести видео.

Но а как же быть если у нас огромные видео файлы? Нужно настроить video stream (потоковую передачу видео файла).
Простыми словами работа происходит так, система делает первый запрос и получает начало видео файла и пытается там найти moov атом, если его нет — делает второй запрос с конца. В конце концов moov атом найден и происходит третий запрос на получение нужного кусочка видео файла для того что бы воспроизвести видео.
Читать полностью »

Тянем ролик с YouTube и раздаем по WebRTC в реалтайме - 1

Задача следующая. Провести совместный просмотр ролика с YouTube в реальном времени несколькими пользователями. Зрители должны получать видео одновременно, с минимальной задержкой.Читать полностью »

Внезапно ваш диск под завязку забит фотографиями и видео, а впереди новые поездки. Что делать, покупать новый, арендовать дисковое пространство на облаке, или может лучше сжать видео файлы через ffmpeg?

Укрощаем мультимедиа с помощью ffmpeg - 1

Впрочем зачем себя ограничивать экономией дискового пространства? Предлагаю узнать удивительные возможности обработки фотографий, аудио и видео данных, утилитами командной строки.

Читать полностью »

image

Добрый день, уважаемые жители хаба Asterisk.

Не знаю, как вам, а мне в последнее время безумно интересно применение Asterisk не в качестве стандартной АТС.

В предыдущем посте Asterisk исполнял обязанности охранника на парковке. На этот раз Asterisk в моей конфигурации проигрывал фоновую музыку в торговом павильоне и в случае возникновения экстренной ситуации (или при необходимости сделать какое-то объявление) выступал в роли системы оповещения.

Подробности под катом.

Читать полностью »

Появилась необходимость показывать видео с камеры на сайте в режиме онлайн. Виделось несколько вариантов (дополню вариантами из комментов, если будут):

  • Дать доступ к камере. Просто доступ к камере давать не стоит по соображениям безопасности. Камера ляжет уже при очень небольшой нагрузке.
  • Коммерческая услуга. Мы им доступ к камере и деньги, они нам ссылку для размещения на сайте. Они же решают проблему совместимости камеры и браузеров пользователей, производительности канала и доступности
  • На своих мощностях. Между пользователем и камерой ставится нечто, что отвечает за совместимость с браузерами, производительность и доступность. Проблемы решаем сами.

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

Подробнее изобретения под катом.
Читать полностью »

Вышел свободный видеотранскодер HandBrake 1.0.0 - 1

После почти 13 лет группа разработчиков выпустила первую версию open source видеотранскодера HandBrake 1.0.0. HandBrake — популярная бесплатная программа для конвертирования и сжатия видео. Кроссплатформенное приложение работает под Linux, macOS и Windows с графическим интерфейсом или из командной строки. Пожалуй, это лучшая программа в своём классе. Сложно найти хотя бы один видеотранскодер близкого качества, функциональности и с открытым кодом. Можно сказать, что это идеальная графическая оболочка для ffmpeg (кстати, команды ffmpeg можно изучать по логам HandBrake, это лучше мануала).
Читать полностью »

Всем доброго времени суток! Появилась тут как-то задача: воспроизвести RTSP-видеопоток с камеры. Т.к. я в достаточной мере знаком с API OpenCV, было принято решение использовать именно его. Для захвата видеопотока в OpenCV используется класс VideoCapture. К сожалению, сеть достаточно часто у нас обрывается, и проблема эта на моем уровне не решается, поэтому необходимым условием комфортной работы стала достаточно быстрая реакция на падение видеопотока — стандартный таймаут на подключение и ожидание следующего кадра составляет 30 секунд, причем внутри VideoCapture вызовы open() и read() блокирующие, что заставляет писать вокруг простого на самом-то деле кода различные обертки вроде вызова их в отдельном потоке и ожидания получения результата в асинхронном режиме. Естественно, никакой радости по этому поводу я не испытывал — все это ресурсы, которые в программе должны были уходить на иные цели, не говоря уже об усложнении кода. Было принято решение: изменить стандартный таймаут, либо добавить возможность его внешней установки. Получился достаточно грязный хак, который, впрочем, может кому-то пригодиться. Возможно, если есть способ лучше — если таковой имеется — очень бы хотелось его узнать, так что прошу комментариев. В идеале — может быть, среди читателей Хабра найдутся разработчики OpenCV, которые таки обратят внимание на данную проблему. Целью было заставить код «работать, как надо, под Windows x64».

Кому интересно — прошу под кат.
Читать полностью »

Рецепт разработки бота под Telegram - 1

Добрый день, уважаемые читатели!

В этом топике я хочу поделиться с вами опытом разработки бота под Telegram за 4 дня. Этот бот переводит все голосовые сообщения, которые получает, в текст. Пытался сделать быстро, но качественно — подучил пару-тройку технологий. Постараюсь максимально подробно описать свой процесс преодоления ошибок и преград; доказать, что, даже не имея нужных навыков, запустить свой продукт не так-то и сложно.

Статья может быть интересна как новичкам в программировании — увидеть, сколько препятствий стоят на пути у готового продукта, так и более продвинутым специалистам — где-то посмеяться, где-то поплакать, где-то написать комментарий «жизненно».

Преамбула

И так, что же может сделать один программист за 4 дня?
Читать полностью »

Просто, мощно, навсегда. Элекард CodecWorks 990 — программный лайв транскодер для AVC и HEVC - 1

В прошлой статье мы рассмотрели, как работает аппаратное ускорение кодирования и декодирования видео Quick Sync Video (QSV) в процессорах 6-го поколения Skylake. Маленький участок SoC специально выделили для размещения специализированных интегральных схем, которые занимаются только обработкой видео. Воспроизведение видео с аппаратной поддержкой стало гораздо меньше отнимать ресурсов у других задач в ОС, меньше нагревать CPU и потреблять меньше электроэнергии. Благодаря QSV, например, ноутбук MacBook Air воспроизводит более 10 часов видео на одном заряде аккумулятора.
Читать полностью »

Всем привет!
Решил поделиться опытом автоматизации контроля громкости вещания своего СМИ. Думаю, у всех профильных технарей давно болит голова, точно продолжает болеть. Введенная Минкомсвязи рекомендация в области нормирования громкости звуковых сигналов вызвала волны возмущения.
Не было предоставлено ни средств контроля, ни средств производства. Крутитесь как хотите.
Впрочем, уже давно, задолго до того знакового события существуют различные плагины к монтажным программам.
Но как быть если уже накоплена огроменная медиабаза?
Читать полностью »