LINUX.ORG.RU

CUDA+RTSP. Не могу найти внятные исходники

 ,


0

1

Всем привет.

Встала задача сделать раскодировку RTSP-потока при помощи CUDA. Первичный анализ показал, что это сделано только в ffmpeg: OpenCV, как и сэмплы Cuda SDK, умеет только файлы декодировать, но не поток. Копать FFMPEG - не самая тривиальная задача, отсюда вопрос: мб что-то еще умеет в CUDA?

★★

Встала задача сделать раскодировку RTSP-потока при помощи CUDA.

Сначала вставь задачу научиться различать RTSP и RTP.

anonymous ()
Ответ на: комментарий от aido

Тебе же объясняют. RTSP - текстовый протокол управления. Его удел это сказать play, stop и прочий шлак. Будешь парсить текст на gpu? Наркоман что-ли?

Видео идёт по RTP. Но это просто контейнер. Закодированное видео режется на куски и пакуется в RTP. Будешь на gpu куски соединять? Глупость.

Видео кодируется с помощью какого-то кодека, например h264. Вот для задачи декодирования gpu подходит. Соответственно вопрос нужно формулировать по другому. Например, как мне декодировать h264 на CUDA?

Учись студент.

anonymous ()

Копать FFMPEG - не самая тривиальная задача

нет, в ffmpeg дружелюбное и адвекватное api, есть примеры. CUDA за тебя не распакует rtsp и h.264 в картинку. И да, что значит раскадровка? Если тебе нужно показать на экране видео содержимое rtsp, то тебе не нужна cuda.

hizel ★★★★★ ()
Ответ на: комментарий от anonymous

Например, как мне декодировать h264 на CUDA?

никак

hizel ★★★★★ ()
Ответ на: комментарий от anonymous

Практически, на современных картах декодер это отдельное железо и дергается через отдельное cuvid api. cuda для декода не нужна.

hizel ★★★★★ ()
Ответ на: комментарий от hizel

отдельное cuvid api

CUDA Video Decoder API

Cuda это и есть апи.

anonymous ()
Ответ на: комментарий от hizel

раскадровка

Раскодировка. читай внимательнее.

aido ★★ ()
Ответ на: комментарий от anonymous

Какой-то филологический срач начинается.

aido ★★ ()
Ответ на: комментарий от hizel

Ок. как декодировать RTP-поток через libavcodec с аппаратным ускорением CUVID? Так корректно звучит?

aido ★★ ()

в ffmpeg всего 20 строк кода для посылания фрагментов в куда/vdpau и получения результата...попробовалбы погуглить сначала, куча примеров с 2009 и позднее года есть

вот старый патч для ффмпега developer.download.nvidia.com/compute/redist/ffmpeg/1511-patch/ffmpeg_NVIDIA_gpu_acceleration.patch (ео уже уменьшили и переделали, год назад под последнюю версию ффмпега, но как пример сойдет тебе)

testersup889 ()
Ответ на: комментарий от testersup889

Только там апи с 2013 года поменялось несколько.

И вот всю эту хурму мне надо вставить в OpenCV, дабы научить его работать с RTP, а не только с файлами.

aido ★★ ()
Ответ на: комментарий от aido

Взять пример про rtsp или написать самому. Проверить как работает rtsp часть и обычный cpu декодер. Стимулировать декодер чтобы он использовал железный декодер h264_cuvid и отдавал фреймы в CUDA формате. Копировать получившиеся cuda куда нужно.

hizel ★★★★★ ()
Ответ на: комментарий от testersup889

нет, этот патч не надо использовать, он устарел и не нужен. особенно ресайз. то что сейчас в последнем релизе ffmpeg 3.x функциональнее.

hizel ★★★★★ ()
Ответ на: комментарий от hizel

В OpenCV уже есть работающий modules/videoio/src/cap_ffmpeg_impl.hpp, надо только куда-то hwaccel вставить.

aido ★★ ()
Ответ на: комментарий от hizel

Оу... я и забыл, что тему уже задавал. Извиняюсь за дубликат. Тогда была проблема с глюками самого ffmpeg и я добавил в способы декодирования - при помощи libvlc.

aido ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.