私は現在、カメラからビデオをキャプチャし、RTP 経由でストリーミングする Android アプリケーションを持っています。RTSP は使用しません。
RTP フィードを記述する SDP ファイルを作成しました。Quicktime 7 で SDP ファイルを開くことができ、ストリームを表示できます。VLC で SDP ファイルを開こうとしても機能しません。次のエラーが表示されます。
live555 demux エラー: 10 秒間データを受信できませんでした。中止します
Wireshark を使用して RTP パケットを監視しており、ネットワーク上のパケットを確認できます (以下の例を参照)。
281956 2545.589171000 10.0.1.25 10.0.1.150 UDP 1442 Source port: 54405 Destination port: 51372
Quicktime 7 では、SDP の宛先ポートへのバインドとストリームの再生に問題はないようですが、VLC を使用しようとすると、次の ICMP パケットが表示されます。
286674 2925.162140000 10.0.1.150 10.0.1.25 ICMP 70 Destination unreachable (Port unreachable)
私のSDPファイルには以下が含まれています:
v=0
o=- 1360349812962 1360349812962 IN IP4 10.0.1.25
s=Unnamed
i=N/A
c=IN IP4 10.0.1.150
t=0 0
a=recvonly
m=video 51372 RTP/AVP 96
b=RR:0
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=42c01e;sprop-parameter sets=Z0LAHukBQHsg,aM4G4g==;
ストリームを VLC で再生するにはどうすればよいですか? VLC の起動時に引数「--rtp-client-port=51326」を使用してみましたが、違いはないようです。
更新 1
VLC(少なくとも私が使用している方法)は、SDPで指定したクライアントポートを使用していないようです。RTPパケットが配信されると予想される独自のポートを常に割り当てます。VLCからポートをキャプチャし、そのポートを宛先として使用してRTPフィードを開始できるようにアプローチを変更しましたが、うまくいきました。これは理想的なソリューションではありません。
VLCにSDPファイルの宛先ポートを使用させる方法を知っている人はいますか?