我有一个Android应用程序,能够打开UDP套接字,连接到服务器,接收数据(h264流),解码收到的数据并在智能手机屏幕上显示它。
我现在要做的是用以下管道替换我的服务器:
gst-launch-1.0 filesrc location=toystory.h264 ! h264parse ! video/x-h264,stream-format=byte-stream,alignment=nal ! rtph264pay ! udpsink host=x.x.x.x port=5000
当我启动android时,屏幕上没有任何内容(客户端没有收到数据,客户端和服务器之间没有建立连接)。
要打开套接字,我使用以下java代码:
try
{
IPAddress = InetAddress.getByName(dstAddress);
socket = new DatagramSocket(PORT);
socket.connect(IPAddress,PORT);
sendPacket = new DatagramPacket(buff, buff.length, IPAddress, PORT);
if (socket.isConnected()) {
socket.send(sendPacket);
}
receivePacket = new DatagramPacket(buffr, buffr.length, IPAddress, PORT);
socket.receive(receivePacket);
}
catch(IOException e) {
e.printStackTrace();
}
你能指导我解决这个问题吗?
答案 0 :(得分:0)
对于Androud上的rtsp服务器,你应该使用gstreamer rtsp lib。
简而言之:
服务器端的使用此管道:
filesrc location=toystory.h264 ! h264parse ! rtph264pay name=pay0 pt=96
在rtsp服务器“包装器”代码中使用它。 (在回购中查看)。
客户端使用此管道:
rtspsrc location=rtsp://host_address:host_port/host_mount ! "
"rtpjitterbuffer ! "
"rtph264depay ! "
"h264parse ! "
"avdec_h264 ! "
"autovideosink
例如,您可以查看此回购。