Создайте видеопоток RTSP на платформе .NET - PullRequest
0 голосов
/ 14 января 2011

Я хочу создать видеопоток RTSP / h264 из статических изображений и включить его в свое приложение .NET.До сих пор я нашел два возможных способа сделать это:

  1. Использовать ffmpeg / ffserver, но мне нужно будет скомпилировать ffserver в Windows, а затем положиться на него ... и я неНе обязательно полагаться на внешнее приложение

  2. Используйте библиотеку LIVE555 (http://www.live555.com), но у них нет библиотек .NET, поэтому мне придется потратить некоторые усилия, чтобыэто работает с остальной частью моего приложения .NET.

Можете ли вы прокомментировать # 1, # 2, или что лучше. Есть ли более быстрый способ запустить сервер RTSPв .NET? Я не против потратить время на разработку, если есть надежное решение, которое требует времени, но было бы хорошо иметь что-то, с чем мы можем работать быстро, для создания прототипов и демонстраций.

Спасибо,

Ответы [ 4 ]

1 голос
/ 12 декабря 2012

Транскодирование h264 будет сложной задачей. Для X264 не так много оболочек для .Net.

После того, как у вас есть способ кодирования, вам все равно придется пакетировать данные, чтобы заставить их работать по Rtp, что Rtsp использует для отправки мультимедиа каждому клиенту. Это означает, что данные должны быть помещены в RtpPackets правильным образом, который определяется в этом случае RFC http://tools.ietf.org/html/rfc6184

У меня есть RtspClient и RtspServer в c #, которые могут получить отдельные пакеты, чтобы вы могли передать их в декодер.

Здесь также есть статья для проекта codeproject. http://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtp

VLC - это еще один вариант, так как он может выполнять транскодирование и предоставлять вам поток Rtsp для одновременного использования клиентами.

Ознакомьтесь с документацией VLC http://www.videolan.org/doc/streaming-howto/en/ch05.html

Если вам нужно что-нибудь еще, дайте мне знать!

1 голос
/ 15 января 2011

1 Вы можете использовать уже скомпилированный ffmpeg / ffserver для Windows.Просто Google, и вы можете найти множество предварительно скомпилированных библиотек для Windows.

2 Для live555 вы можете создавать библиотеки в VC6, YS2003 или VS2008.Ссылка по ссылке Как настроить и собрать код в Window s .Компиляция очень проста и занимает 1 час.

* Эти библиотеки написаны на C / C ++ (неуправляемый код), и для использования этих библиотек в управляемом коде вам может понадобиться выполнить маршалинг или написать какой-то интерфейс.

1 голос
/ 14 января 2011

Нужно ли это делать на лету или вы можете загрузить изображения, затем создать видео, а затем просто передать видеопоток h264? Я бы просто вызвал FFMpeg из командной строки в вашем коде и вывел бы видео и пропустил RTSP, если вы можете. Если вы используете qt-faststart, вы также можете получить доступные для поиска потоки без предварительной загрузки всего MP4.

0 голосов
/ 17 января 2011

Несмотря на то, что это не вечное решение, на данный момент самым простым способом сделать это было внедрение vlc в программу с использованием библиотек .net Process:

Dim p As New ProcessStartInfo
p.FileName = "vlc"  'Assuming vlc.exe is already in the path variable
p.Arguments = "vlc CLI options for setting up the stream"
p.WindowStyle = ProcessWindowStyle.Hidden
Process.Start(p)
...