Рубрика «ffmpeg» - 4

Руководство по FFmpeg libav - 1


Долго искал книгу, в которой было бы разжёвано, как использовать FFmpeg в качестве библиотеки (в дальнейшем в тексте — libav, т.е. library audio video). Обнаружил учебник «Как написать видеоплеер и уложиться в менее чем тысячу строк». К сожалению, информация там устаревшая, так что пришлось создавать мануал своими силами.

Большая часть кода будет на C, однако не волнуйтесь: Вы легко всё поймёте и сможете применить на любимом языке. У FFmpeg libav уйма привязок ко многим языкам (в том числе и к Python и к Go). Но даже если Ваш язык прямой совместимости не имеет, всё равно можно привязаться через ffi (вот пример с Lua).

Начнём с краткого экскурса о том, что такое видео, аудио, кодеки и контейнеры. Затем перейдем к ускоренному курсу, посвященному использованию командной строки FFmpeg, и, наконец, напишем код. Не стесняйтесь переходить сразу в раздел «Тернистый путь изучения FFmpeg libav».

Есть мнение (и не только моё), что потоковое интернет-видео уже приняло эстафету от традиционного телевидения. Как бы то ни было, FFmpeg точно достоин изучения.

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

Последнее время в качестве хобби снимаю на видео лекции знакомого психолога. Отснятый материал монтирую и публикую на своём сайте. Месяц назад я загорелся идеей организовать круглосуточную трансляцию этих лекций на YouTube в режиме 24/7. Этакий тематический «телеканал», посвященный личностному росту.

Как сделать обычную трансляцию я знаю. А вот как сделать так, чтобы это была трансляция именно видео-файлов? Чтобы она шла 24/7, была гибкой, максимально автономной и при этом никак не зависела от моего домашнего компьютера. Это мне и предстояло выяснить.

Круглосуточная трансляции своих видео на YouTube - 1

На поиск решения ушло несколько дней. Я изучил множество форумов и различных мануалов без которых моя трансляция просто бы не получилась. И теперь, когда шалость удалась, я чувствую потребность поделиться своим решением. Так появилась эта статья.

Если коротко, то итоговое решение получилось следующим: VPS + ffmeg + bash-скрипт. Под катом я описываю проделанные шаги и рассказываю про «подводные камни», которые обнаружились при организации трансляции.
Читать полностью »

Обзор WCS 5.2 — WebRTC сервера для веб-разработчиков онлайн трансляций и видеочатов - 1

Алиса — опытный фулл-стек разработчик и способна за неделю написать каркас SAAS проекта на своем любимом фреймворке с использованием php. На фронтенде предпочитает Vue.js.

В телеграмм стучится заказчик, которому во что бы то ни стало надо разработать веб-сайт, который будет местом встречи работодателя и сотрудника для проведения очного интервью. Очного — означает глаза в глаза, прямого видео контакта в реальном времени с видео и голосом.
«Почему не скайп?» — спросите вы. Так уж повелось, что серьезные проекты, а каждый стартап, несомненно, себя таковым считает, стараются предложить внутренний сервис коммуникаций по самым разным причинам, среди которых:Читать полностью »

Компилируем FFmpeg в WebAssembly (=ffmpeg.js): Часть 2 — Компиляция с Emscripten - 1

Список переведённых частей серии:

  1. Приготовления
  2. Компиляция с Emscripten (вы тут)
  3. Конвертация avi в mp4


Начиная с этой части, материал будет посложнее, так что не стесняйтесь гуглить по ходу чтения, если не понимаете, что происходит.

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

В этой части мы разберём:

  1. Как настроить окружение для Emscripten в Docker
  2. Использование emconfigure и emmake 
  3. Как решать проблемы, возникающие при компиляции FFmpeg с Emscripten

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

image alt

Назначение хранителя экрана для «Kodi»

Проект предназначен для создания «Феерического» хранителя экрана с минимальным количеством исходного кода на языке Python. Проект является простейшим плагином для мультимедиа центра Kodi.

Проект показывает как можно создать очень красивый хранитель экрана целиком опираясь на работу «OpenSource» сообщества. Проект интеграционный, это пример написания двух независимых компонентов, каждый из которых занимает порядка 80 строчек кода. Первый компонент — генератор контента, shell скрипт, второй компонент — плагин для мультимедиа центра Kodi, отвечает за отображение контента.

Ну и напоследок если вы программист и используете систему контроля версий Git, то вы можете визуализировать вашу работу, записать ее в видео файл и наслаждаться полученным результатом на экране телевизора или компьютера, откинувшись на спинку кресла с чашечкой кофе. А прохладными осенними вечерами вы можете убаюкивающе засыпать под ваш screensaver, не забыв при этом поставить таймер выключения устройства в Kodi.
Читать полностью »

В общем и целом, распознавание лиц и идентификация людей по их результатам выглядит для аксакалов как подростковый секс — все о нем много говорят, но мало кто практикует. Понятно, что мы уже не удивляемся, что после загрузки фоточки с дружеских посиделок Facebook/VK предлагает отметить обнаруженных на снимке персон, но тут мы интуитивно знаем, что у соцсетей есть хорошее подспорье в виде графа связей персоны. А если такого графа нет? Впрочем, начнем по порядку.

Какой-то черт прется в дверь с коробкой
Читать полностью »

Привет! Эта статья продолжение моей статьи FFmpeg начало работы Visual Studio. Здесь мы приступим к аппаратному декодированию RTSP-потока FULL HD. Заранее скажу, что с данной задачей легко справится даже Intel ATOM Z8350.

Задача: аппаратное декодирование и запись до 4-х кадров в оперативную память для последующей параллельной обработки (четырьмя ядрами процессора) с IP-камеры RTSP h.264. Обработанные кадры отображаю с помощью функций WinAPI. Как итог мы получим быстродействующую систему для компьютерной обработки RTSP-потока в параллельном режиме. Далее можно подключать алгоритмы Компьютерного зрения для обработки кадров Real Time.

image

Вступление

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

DirectX Video Acceleration (DXVA) — это API для использования аппаратного ускорения для ускорения обработки видео силами графических процессоров (GPU). DXVA 2.0 позволяет перенаправлять на GPU большее количество операций, включая захват видео и операции обработки видео.
Читать полностью »

Читая недавно очередную статью про апскейл (Upscale — масштабирование изображения до более высокого разрешения), на этот раз про коммерческий продукт Topaz AI Gigapixel, я оставил комментарий следующий содержания:

Жаль, что пост — простой перевод, хотелось бы сравнения с чем-нибудь бесплатным, вроде того же waifu2x. Полагаю, разницу найти будет очень сложно, даже несмотря на то, что waifu2x предназначена для анимации.

Ну а раз статья была переводом, я решил взять дело в свои руки. Итак, не будем тратить времени, знакомьтесь:

Под катом лонгрид, а также гайды по апскейлу видео с помощью Instant 4K, Waifu2x, Lanczos и Topaz Gigapixel AI.
Читать полностью »

Привет! Начну с того, что я занимаюсь разработкой программы определения автомобильных номеров на дешевом слабомощном процессоре типа Intel ATOM Z8350. Мы получили достаточно хорошие результаты в определении российских номеров на статической картинке (до 97%) с неплохим быстродействием без применения нейронных сетей. Дело осталось за малым — работа с IP-камерой рис 1.

image
рис.1 Компьютер Intel ATOM Z83II и IP-камера ATIS

FFmpeg – это библиотека для создания видеоприложений или даже утилит общего назначения, которая берет на себя всю тяжелую работу по обработке видео, выполняя все декодирование, кодирование, мультиплексирование и демультиплексирование для вас.

Задача: Full HD IP-камера в стандарте h.264 передает RTSP поток. Размер распакованного кадра 1920x1080 пикселей, частота 25 кадров в секунду. Нужно получать декодированные кадры в оперативную память и каждый 25 кадр сохранять на диск.

В данном примере мы будем декодировать кадры программно. Цель — научиться использовать FFmpeg и в дальнейшем сравнить результаты, получаемые с помощью аппаратного декодирования. Вы увидите, FFmpeg – это просто!
Читать полностью »

Наверное, вы слышали про технологию Яндекса DeepHD, с помощью которой они как-то раз улучшили качество советских мультфильмов. Увы, в публичном доступе ее еще нет, а у нас, рядовых программистов, вряд ли найдутся силы написать свое решение. Но лично мне, как обладателю Retina-дислея (2880х1800), недавно очень захотелось посмотреть «Рика и Морти». Какого же было мое разочарование, когда я увидел, как мыльно на этом экране выглядит 1080р, в котором существуют оригиналы этого мультсериала! (это прекрасное качество и обычно его вполне достаточно, но поверьте, ретина так устроена, что анимация с ее четкими линиями в 1080р выглядит мыльновато, словно 480р на FHD-мониторе)

Я твердо решил, что хочу увидеть этот мультсериал в 4К, хотя и совершенно не умею писать нейросети. Однако решение было найдено! Любопытно, что нам даже не придется писать код, понадобится лишь ~100 ГБ места на диске и немного терпения. А результат — четкое изображение в 4К, которые выглядит достойнее, чем любая интерполяция.

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js