H264をRTSPなしでRTP経由でVLCにストリーミングしようとすると、IPカメラからH.264ストリームを受信し、別のホストのVLCに送信します。 VLCはURL「rtp:// @:12345」を開いた。 、私は、コードの一部を置き換えるopenRTSPがH264VideoFileSinkクラスを使用してファイルに同じことが、出力データをやっていること お知らせ:H264をVLCにストリームするにはlive555を使用
if (strcmp(subsession->mediumName(), "video") == 0) {
if (strcmp(subsession->codecName(), "H264") == 0) {
// For H.264 video stream, we use a special sink that adds 'start codes',
// and (at the start) the SPS and PPS NAL units:
//fileSink = H264VideoFileSink::createNew(*env, outFileName,
// subsession->fmtp_spropparametersets(),
// fileSinkBufferSize, oneFilePerFrame);
char const* outputAddressStr = "192.168.1.123"; // this could also be unicast
struct in_addr outputAddress;
outputAddress.s_addr = our_inet_addr(outputAddressStr);
const Port outputPort(12345);
unsigned char const outputTTL = 255;
Groupsock outputGroupsock(*env, outputAddress, outputPort, outputTTL);
rtpSink = H264VideoRTPSink::createNew(*env, &outputGroupsock, 96);
}
…
その後、
subsession->sink = rtpSink;
subsession->sink->startPlaying(*(subsession->readSource()),
subsessionAfterPlaying,
subsession);
結果はopenRTSPが実行されていることですが、VLCを受け取りました何もない。私は確認するためにWiresharkを使用しました、パケットは宛先IPとポートに送られませんでした。
また、testMP3Streamerを試してみてください。マルチキャストアドレスをunavastアドレスabovedに置き換えてください。 VLCはそれを再生することができます。誰も私にいくつかの提案を教えてもらえますか?
VLCは、「SDP形式の記述はRTPストリームを受け取る必要があります。 rtp:// URIsは動的RTPペイロードフォーマット(96)で動作できないことに注意してください。 "これは、VLCが実際にRTPパケットを受信したことを意味します。ありがとうございました。 – myggao