Решение для потоковой передачи UDP или RTP для Android.

Мне нужно создать приложение для Android, чтобы отображать прямую трансляцию ТВ. приложение должно воспроизводить видеопотоки в реальном времени из многоадресной рассылки шлюза DVB, согласно поставщику шлюза, оно может передавать потоки UDP или RTP. Я настроил vlc на своем компьютере для потоковой передачи UDP и RTP и сломал пальцы, пытаясь заставить проигрыватель Android показать их. через некоторое время я узнал, что Android поддерживает только прямые трансляции HTTP/S и RTSP. Я пробовал все решения FFMPEG и различные медиаплееры, пока безуспешно. Я не эксперт по видео, но, насколько я понимаю, RTSP — это инкапсуляция RTP, можно ли мой канал RTP завернуть и передать в потоковом режиме (даже через прокси)? Кто-нибудь знает рабочее решение UDP?

спасибо

Я начал писать туннель, который передает локальный поток UDP с порта 1234 на TCP-соединение на порту 8888. Я тестирую с VLC, полезные данные UDP выглядят правильно, и я могу видеть VLC инициировать http-соединение, когда я жду, пока прослушиватель TCP примет соединение. но все же VLC не будет воспроизводить полученный HTTP-поток, мой код:

public void Bridge()
    {
        //endpoints
        IPEndPoint myRemoteEndpoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1234);

        //communications objects
        UdpClient myUdpClient = new UdpClient(myRemoteEndpoint);
        TcpListener myTcpListener = new TcpListener(IPAddress.Any, 8888);

        //buffer
        byte[] buffer = new byte[2048];

        //start tcp listener
        myTcpListener.Start();
        Socket tcpAcceptedSocket = myTcpListener.AcceptSocket();            

        while (true)
        {
            try
            {
                //get data from UDP client
                buffer = myUdpClient.Receive(ref myRemoteEndpoint);

                //send bytes received from UDP over TCP
                tcpAcceptedSocket.Send(buffer);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }

        //close sockets
        myUdpClient.Close();
        myTcpListener.Stop();

    }

есть мысли?

12
задан Omriko 14 May 2012 в 16:20
поделиться