Мне нужно создать приложение для 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();
}
Есть предположения ?