Tôi cần tạo ứng dụng Android để hiển thị nguồn cấp dữ liệu truyền hình trực tiếp. ứng dụng được cho là phát trực tiếp các luồng video từ một Multicast của một cổng DVB, theo nhà cung cấp cổng, nó có thể stream ra UDP hoặc RTP. Tôi thiết lập vlc trên máy tính của mình để phát trực tuyến UDP và RTP và đã bẻ gãy các ngón tay của tôi đang cố gắng để người chơi Android hiển thị chúng. sau một thời gian tôi phát hiện ra rằng android chỉ hỗ trợ các luồng trực tiếp HTTP/S và RTSP. Tôi đã thử tất cả các giải pháp FFMPEG và các trình phát phương tiện khác nhau mà không thành công. Tôi không phải là một chuyên gia video nhưng với sự hiểu biết của tôi RTSP là một đóng gói của RTP, nguồn cấp dữ liệu RTP của tôi có thể được gói và phát trực tuyến (thậm chí qua proxy) không? có ai biết giải pháp UDP đang hoạt động không?Giải pháp phát trực tuyến UDP hoặc RTP cho android
nhờ
tôi bắt đầu viết một đường hầm mà đi một dòng UDP địa phương từ cổng 1234, với một kết nối TCP trên cổng 8888. Tôi đang thử nghiệm với VLC, payload UDP có vẻ đúng, và tôi có thể nhìn thấy VLC init kết nối http khi tôi chờ cho người nghe TCP chấp nhận kết nối. nhưng vẫn VLC sẽ không chơi kết quả dòng HTTP, mã của tôi:
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();
}
bất kỳ suy nghĩ?
tôi sẽ đánh giá cao bất kỳ mã/mẫu thực hiện. cảm ơn lần nữa – Omriko
"Không có ai khác?" – Omriko