Domanda

Recentemente ho scaricato il codice sorgente del server LIVE555 dal loro sito. Ho provato a compilare ed eseguire il file nella directory testMPEG1or2AudioVideoStreamer.cpp testProgs. Ho compilato l'intero progetto compresi i programmi di test con successo. Poi ho eseguito il programma di test testMPEG1or2AudioVideoStreamer. Ho anche messo un file test.mpg nella directory corrente come definito nel programma di test. Dopo l'esecuzione ho ricevuto il seguente output:

Play this stream using the URL "rtsp://192.168.2.22:5555/testStream"
Beginning streaming...
Beginning to read from file...
...done reading from file
Beginning to read from file...
...done reading from file
etc.,

Poi copio e suono il rtsp://192.168.2.22:5555/testStream URL utilizzando VLC media player, ma VLC solo aspettare qualche tempo e poi smetto (stesso con Gnome MPlayer anche). Essa non gioca alcun audio o video. Ogni aiuto è apprezzato come io non posso andare avanti senza lo streaming con successo utilizzando LIVE555. Ecco il codice di testMPEG1or2AudioVideoStreamer.cpp. Mi puoi dire quello che mi manca ...

/**********
This library is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the
Free Software Foundation; either version 2.1 of the License, or (at your
option) any later version. (See <http://www.gnu.org/copyleft/lesser.html>.)

This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
more details.

You should have received a copy of the GNU Lesser General Public License
along with this library; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
**********/
// Copyright (c) 1996-2010, Live Networks, Inc.  All rights reserved
// A test program that reads a MPEG-1 or 2 Program Stream file,
// splits it into Audio and Video Elementary Streams,
// and streams both using RTP
// main program

#include "liveMedia.hh"
#include "BasicUsageEnvironment.hh"
#include "GroupsockHelper.hh"

UsageEnvironment* env;
char const* inputFileName = "test.mpg";
MPEG1or2Demux* mpegDemux;
FramedSource* audioSource;
FramedSource* videoSource;
RTPSink* audioSink;
RTPSink* videoSink;

void play(); // forward

// To stream using "source-specific multicast" (SSM), uncomment the following:
//#define USE_SSM 1
#ifdef USE_SSM
Boolean const isSSM = True;
#else
Boolean const isSSM = False;
#endif

// To set up an internal RTSP server, uncomment the following:
#define IMPLEMENT_RTSP_SERVER 1
// (Note that this RTSP server works for multicast only)

// To stream *only* MPEG "I" frames (e.g., to reduce network bandwidth),
// change the following "False" to "True":
Boolean iFramesOnly = False;

int main(int argc, char** argv) {
  // Begin by setting up our usage environment:
  TaskScheduler* scheduler = BasicTaskScheduler::createNew();
  env = BasicUsageEnvironment::createNew(*scheduler);

  // Create 'groupsocks' for RTP and RTCP:
  char const* destinationAddressStr
#ifdef USE_SSM
    = "192.168.1.255";
#else
    = "192.168.1.255";
  // Note: This is a multicast address.  If you wish to stream using
  // unicast instead, then replace this string with the unicast address
  // of the (single) destination.  (You may also need to make a similar
  // change to the receiver program.)
#endif
  const unsigned short rtpPortNumAudio = 6666;
  const unsigned short rtcpPortNumAudio = rtpPortNumAudio+1;
  const unsigned short rtpPortNumVideo = 8888;
  const unsigned short rtcpPortNumVideo = rtpPortNumVideo+1;
  const unsigned char ttl = 7; // low, in case routers don't admin scope

  struct in_addr destinationAddress;
  destinationAddress.s_addr = our_inet_addr(destinationAddressStr);
  const Port rtpPortAudio(rtpPortNumAudio);
  const Port rtcpPortAudio(rtcpPortNumAudio);
  const Port rtpPortVideo(rtpPortNumVideo);
  const Port rtcpPortVideo(rtcpPortNumVideo);

  Groupsock rtpGroupsockAudio(*env, destinationAddress, rtpPortAudio, ttl);
  Groupsock rtcpGroupsockAudio(*env, destinationAddress, rtcpPortAudio, ttl);
  Groupsock rtpGroupsockVideo(*env, destinationAddress, rtpPortVideo, ttl);
  Groupsock rtcpGroupsockVideo(*env, destinationAddress, rtcpPortVideo, ttl);
#ifdef USE_SSM
  rtpGroupsockAudio.multicastSendOnly();
  rtcpGroupsockAudio.multicastSendOnly();
  rtpGroupsockVideo.multicastSendOnly();
  rtcpGroupsockVideo.multicastSendOnly();
#endif

  // Create a 'MPEG Audio RTP' sink from the RTP 'groupsock':
  audioSink = MPEG1or2AudioRTPSink::createNew(*env, &rtpGroupsockAudio);

  // Create (and start) a 'RTCP instance' for this RTP sink:
  const unsigned estimatedSessionBandwidthAudio = 160; // in kbps; for RTCP b/w share
  const unsigned maxCNAMElen = 100;
  unsigned char CNAME[maxCNAMElen+1];
  gethostname((char*)CNAME, maxCNAMElen);
  CNAME[maxCNAMElen] = '\0'; // just in case
#ifdef IMPLEMENT_RTSP_SERVER
  RTCPInstance* audioRTCP =
#endif
    RTCPInstance::createNew(*env, &rtcpGroupsockAudio,
                estimatedSessionBandwidthAudio, CNAME,
                audioSink, NULL /* we're a server */, isSSM);
  // Note: This starts RTCP running automatically

  // Create a 'MPEG Video RTP' sink from the RTP 'groupsock':
  videoSink = MPEG1or2VideoRTPSink::createNew(*env, &rtpGroupsockVideo);

  // Create (and start) a 'RTCP instance' for this RTP sink:
  const unsigned estimatedSessionBandwidthVideo = 4500; // in kbps; for RTCP b/w share
#ifdef IMPLEMENT_RTSP_SERVER
  RTCPInstance* videoRTCP =
#endif
    RTCPInstance::createNew(*env, &rtcpGroupsockVideo,
                  estimatedSessionBandwidthVideo, CNAME,
                  videoSink, NULL /* we're a server */, isSSM);
  // Note: This starts RTCP running automatically

#ifdef IMPLEMENT_RTSP_SERVER
  RTSPServer* rtspServer = RTSPServer::createNew(*env, 5555);
  // Note that this (attempts to) start a server on the default RTSP server
  // port: 554.  To use a different port number, add it as an extra
  // (optional) parameter to the "RTSPServer::createNew()" call above.
  if (rtspServer == NULL) {
    *env << "Failed to create RTSP server: " << env->getResultMsg() << "\n";
    exit(1);
  }
  ServerMediaSession* sms
    = ServerMediaSession::createNew(*env, "testStream", inputFileName,
           "Session streamed by \"testMPEG1or2AudioVideoStreamer\"",
                       isSSM);
  sms->addSubsession(PassiveServerMediaSubsession::createNew(*audioSink, audioRTCP));
  sms->addSubsession(PassiveServerMediaSubsession::createNew(*videoSink, videoRTCP));
  rtspServer->addServerMediaSession(sms);

  char* url = rtspServer->rtspURL(sms);
  *env << "Play this stream using the URL \"" << url << "\"\n";
  delete[] url;
#endif

  // Finally, start the streaming:
  *env << "Beginning streaming...\n";
  play();

  env->taskScheduler().doEventLoop(); // does not return

  return 0; // only to prevent compiler warning
}

void afterPlaying(void* clientData) {
  // One of the sinks has ended playing.
  // Check whether any of the sources have a pending read.  If so,
  // wait until its sink ends playing also:
  if (audioSource->isCurrentlyAwaitingData()
      || videoSource->isCurrentlyAwaitingData()) return;

  // Now that both sinks have ended, close both input sources,
  // and start playing again:
  *env << "...done reading from file\n";

  audioSink->stopPlaying();
  videoSink->stopPlaying();
      // ensures that both are shut down
  Medium::close(audioSource);
  Medium::close(videoSource);
  Medium::close(mpegDemux);
  // Note: This also closes the input file that this source read from.

  // Start playing once again:
  play();
}

void play() {
  // Open the input file as a 'byte-stream file source':
  ByteStreamFileSource* fileSource
    = ByteStreamFileSource::createNew(*env, inputFileName);
  if (fileSource == NULL) {
    *env << "Unable to open file \"" << inputFileName
     << "\" as a byte-stream file source\n";
    exit(1);
  }

  // We must demultiplex Audio and Video Elementary Streams
  // from the input source:
  mpegDemux = MPEG1or2Demux::createNew(*env, fileSource);
  FramedSource* audioES = mpegDemux->newAudioStream();
  FramedSource* videoES = mpegDemux->newVideoStream();

  // Create a framer for each Elementary Stream:
  audioSource
    = MPEG1or2AudioStreamFramer::createNew(*env, audioES);
  videoSource
    = MPEG1or2VideoStreamFramer::createNew(*env, videoES, iFramesOnly);

  // Finally, start playing each sink.
  *env << "Beginning to read from file...\n";
  videoSink->startPlaying(*videoSource, afterPlaying, videoSink);
  audioSink->startPlaying(*audioSource, afterPlaying, audioSink);
}

Modifica 1: di uscita openRTSP

[jomit@jomoos live2]$ testProgs/openRTSP -o rtsp://192.168.2.22:5555/testStream
Sending request: OPTIONS rtsp://192.168.2.22:5555/testStream RTSP/1.0
CSeq: 1
User-Agent: testProgs/openRTSP (LIVE555 Streaming Media v2010.03.08)


Received OPTIONS response: RTSP/1.0 200 OK
CSeq: 1
Date: Wed, Nov 30 2011 08:30:23 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, SET_PARAMETER


RTSP "OPTIONS" request returned: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE,     SET_PARAMETER

EDIT 2: di controllo porta

Ho usato Zenmap di scansione delle porte, e si vede 5555 come una porta TCP e più aperto. Ma mostra l'applicazione come Freeciv, ma non ho installato quella partita sul mio sistema. Forse è una congettura da Zenmap. Sono in esecuzione Fedora 16 con Gnome 3.2 sul mio sistema.

EDIT 3: di uscita VLC

[0x21fa840] main playlist debug: processing request item rtsp://192.168.1.222:5555/testStream node Playlist skip 0
[0x21fa840] main playlist debug: resyncing on rtsp://192.168.1.222:5555/testStream
[0x21fa840] main playlist debug: rtsp://192.168.1.222:5555/testStream is at 0
[0x21fa840] main playlist debug: starting new item
[0x21fa840] main playlist debug: creating new input thread
[0x7f1f88005410] main input debug: Creating an input for 'rtsp://192.168.1.222:5555/testStream'
[0x7f1f88005410] main input debug: thread (input) created at priority 10 (input/input.c:220)
[0x7f1f88005ec0] main input debug: TIMER input launching for 'rtsp://192.168.1.222:5555/testStream' : 15.307 ms - Total 15.307 ms / 1 intvls (Avg 15.307 ms)
[0x2227990] qt4 interface debug: IM: Setting an input
[0x7f1f88005410] main input debug: thread started
[0x7f1f88005410] main input debug: using timeshift granularity of 50 MiB
[0x7f1f88005410] main input debug: using timeshift path '/tmp'
[0x7f1f88005410] main input debug: `rtsp://192.168.1.222:5555/testStream' gives access `rtsp' demux `' path `192.168.1.222:5555/testStream'
[0x7f1f88005410] main input debug: creating demux: access='rtsp' demux='' path='192.168.1.222:5555/testStream'
[0x7f1f7c002860] main demux debug: looking for access_demux module: 1 candidate
Opening connection to 192.168.1.222, port 5555...
...remote connection opened
Sending request: OPTIONS rtsp://192.168.1.222:5555/testStream RTSP/1.0
CSeq: 2
User-Agent: LibVLC/1.1.12 (LIVE555 Streaming Media v2011.09.02)


Received 137 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 2
Date: Wed, Nov 30 2011 19:45:55 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, SET_PARAMETER


Sending request: DESCRIBE rtsp://192.168.1.222:5555/testStream RTSP/1.0
CSeq: 3
User-Agent: LibVLC/1.1.12 (LIVE555 Streaming Media v2011.09.02)
Accept: application/sdp


Received 641 new bytes of response data.
Received a complete DESCRIBE response:
RTSP/1.0 200 OK
CSeq: 3
Date: Wed, Nov 30 2011 19:45:55 GMT
Content-Base: rtsp://192.168.1.222:5555/testStream/
Content-Type: application/sdp
Content-Length: 471

v=0
o=- 1322681211098021 1 IN IP4 192.168.1.222
s=Session streamed by "testMPEG1or2AudioVideoStreamer"
i=test.mpg
t=0 0
a=tool:LIVE555 Streaming Media v2010.03.08
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:Session streamed by "testMPEG1or2AudioVideoStreamer"
a=x-qt-text-inf:test.mpg
m=audio 6666 RTP/AVP 14
c=IN IP4 192.168.1.255/7
b=AS:160
a=control:track1
m=video 8888 RTP/AVP 32
c=IN IP4 192.168.1.255/7
b=AS:4500
a=control:track2

[0x7f1f7c002860] live555 demux debug: RTP subsession 'audio/MPA'
Sending request: SETUP rtsp://192.168.1.222:5555/testStream/track1 RTSP/1.0
CSeq: 4
User-Agent: LibVLC/1.1.12 (LIVE555 Streaming Media v2011.09.02)
Transport: RTP/AVP;unicast;client_port=6666-6667


Received 182 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 200 OK
CSeq: 4
Date: Wed, Nov 30 2011 19:45:55 GMT
Transport: RTP/AVP;multicast;destination=192.168.1.255;source=192.168.1.222;port=6666-6667;ttl=7
Session: 06AFB6E5


[0x7f1f88005410] main input debug: selecting program id=0
[0x7f1f7c002860] live555 demux debug: RTP subsession 'video/MPV'
Sending request: SETUP rtsp://192.168.1.222:5555/testStream/track2 RTSP/1.0
CSeq: 5
User-Agent: LibVLC/1.1.12 (LIVE555 Streaming Media v2011.09.02)
Transport: RTP/AVP;unicast;client_port=8888-8889
Session: 06AFB6E5


Received 182 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 200 OK
CSeq: 5
Date: Wed, Nov 30 2011 19:45:55 GMT
Transport: RTP/AVP;multicast;destination=192.168.1.255;source=192.168.1.222;port=8888-8889;ttl=7
Session: 06AFB6E5


[0x7f1f7c002860] live555 demux debug: setup start: 0.000000 stop:0.000000
Sending request: PLAY rtsp://192.168.1.222:5555/testStream/ RTSP/1.0
CSeq: 6
User-Agent: LibVLC/1.1.12 (LIVE555 Streaming Media v2011.09.02)
Session: 06AFB6E5
Range: npt=0.000-


Received 268 new bytes of response data.
Received a complete PLAY response:
RTSP/1.0 200 OK
CSeq: 6
Date: Wed, Nov 30 2011 19:45:55 GMT
Range: npt=0.000-
Session: 06AFB6E5
RTP-Info: url=rtsp://192.168.1.222:5555/testStream/track1;seq=33348;rtptime=3573241747,url=rtsp://192.168.1.222:5555/testStream/track2;seq=12520;rtptime=2773558772


[0x7f1f7c002860] live555 demux debug: play start: 0.000000 stop:0.000000
[0x7f1f7c002860] main demux debug: using access_demux module "live555"
[0x7f1f7c002860] main demux debug: TIMER module_need() : 5.536 ms - Total 5.536 ms / 1 intvls (Avg 5.536 ms)
[0x7f1f7c00dca0] main decoder debug: looking for decoder module: 33 candidates
[0x7f1f7c00dca0] main decoder debug: using decoder module "mpeg_audio"
[0x7f1f7c00dca0] main decoder debug: TIMER module_need() : 0.519 ms - Total 0.519 ms / 1 intvls (Avg 0.519 ms)
[0x7f1f7c00dca0] main decoder debug: thread (decoder) created at priority 5 (input/decoder.c:301)
[0x7f1f7c00dca0] main decoder debug: thread started
[0x7f1f7c00e5f0] main decoder debug: looking for decoder module: 33 candidates
[0x7f1f7c00e5f0] avcodec decoder debug: libavcodec already initialized
[0x7f1f7c00e5f0] avcodec decoder debug: trying to use direct rendering
[0x7f1f7c00e5f0] avcodec decoder debug: ffmpeg codec (MPEG-1/2 Video) started
[0x7f1f7c00e5f0] main decoder debug: using decoder module "avcodec"
[0x7f1f7c00e5f0] main decoder debug: TIMER module_need() : 1.561 ms - Total 1.561 ms / 1 intvls (Avg 1.561 ms)
[0x7f1f7c006b90] main packetizer debug: looking for packetizer module: 21 candidates
[0x7f1f7c006b90] main packetizer debug: using packetizer module "packetizer_mpegvideo"
[0x7f1f7c006b90] main packetizer debug: TIMER module_need() : 0.288 ms - Total 0.288 ms / 1 intvls (Avg 0.288 ms)
[0x7f1f7c00e5f0] main decoder debug: thread (decoder) created at priority 0 (input/decoder.c:301)
[0x7f1f7c00e5f0] main decoder debug: thread started
[0x7f1f7c008250] main demux meta debug: looking for meta reader module: 2 candidates
[0x7f1f7c008250] lua demux meta debug: Trying Lua scripts in /home/jomit/.local/share/vlc/lua/meta/reader
[0x7f1f7c008250] lua demux meta debug: Trying Lua scripts in /usr/lib64/vlc/lua/meta/reader
[0x7f1f7c008250] lua demux meta debug: Trying Lua playlist script /usr/lib64/vlc/lua/meta/reader/filename.luac
[0x7f1f7c008250] lua demux meta debug: Trying Lua scripts in /usr/share/vlc/lua/meta/reader
[0x7f1f7c008250] main demux meta debug: no meta reader module matching "any" could be loaded
[0x7f1f7c008250] main demux meta debug: TIMER module_need() : 1.093 ms - Total 1.093 ms / 1 intvls (Avg 1.093 ms)
[0x7f1f88005410] main input debug: `rtsp://192.168.1.222:5555/testStream' successfully opened
[0x7f1f7c002860] live555 demux warning: no data received in 10s. Switching to TCP
Sending request: TEARDOWN rtsp://192.168.1.222:5555/testStream/ RTSP/1.0
CSeq: 7
User-Agent: LibVLC/1.1.12 (LIVE555 Streaming Media v2011.09.02)
Session: 06AFB6E5


[0x7f1f7c00dca0] main decoder debug: removing module "mpeg_audio"
[0x7f1f7c00dca0] main decoder debug: killing decoder fourcc `mpga', 0 PES in FIFO
[0x7f1f7c00e5f0] avcodec decoder debug: ffmpeg codec (MPEG-1/2 Video) stopped
[0x7f1f7c00e5f0] main decoder debug: removing module "avcodec"
[0x7f1f7c00e5f0] main decoder debug: killing decoder fourcc `mpgv', 0 PES in FIFO
[0x7f1f7c006b90] main packetizer debug: removing module "packetizer_mpegvideo"
[0x7f1f88005410] main input debug: Program doesn't contain anymore ES
Opening connection to 192.168.1.222, port 5555...
...remote connection opened
Sending request: OPTIONS rtsp://192.168.1.222:5555/testStream RTSP/1.0
CSeq: 2
User-Agent: LibVLC/1.1.12 (LIVE555 Streaming Media v2011.09.02)


Received 137 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 2
Date: Wed, Nov 30 2011 19:46:05 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, SET_PARAMETER


Sending request: DESCRIBE rtsp://192.168.1.222:5555/testStream RTSP/1.0
CSeq: 3
User-Agent: LibVLC/1.1.12 (LIVE555 Streaming Media v2011.09.02)
Accept: application/sdp


Received 641 new bytes of response data.
Received a complete DESCRIBE response:
RTSP/1.0 200 OK
CSeq: 3
Date: Wed, Nov 30 2011 19:46:05 GMT
Content-Base: rtsp://192.168.1.222:5555/testStream/
Content-Type: application/sdp
Content-Length: 471

v=0
o=- 1322681211098021 1 IN IP4 192.168.1.222
s=Session streamed by "testMPEG1or2AudioVideoStreamer"
i=test.mpg
t=0 0
a=tool:LIVE555 Streaming Media v2010.03.08
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:Session streamed by "testMPEG1or2AudioVideoStreamer"
a=x-qt-text-inf:test.mpg
m=audio 6666 RTP/AVP 14
c=IN IP4 192.168.1.255/7
b=AS:160
a=control:track1
m=video 8888 RTP/AVP 32
c=IN IP4 192.168.1.255/7
b=AS:4500
a=control:track2

[0x7f1f7c002860] live555 demux debug: RTP subsession 'audio/MPA'
Sending request: SETUP rtsp://192.168.1.222:5555/testStream/track1 RTSP/1.0
CSeq: 4
User-Agent: LibVLC/1.1.12 (LIVE555 Streaming Media v2011.09.02)
Transport: RTP/AVP/TCP;unicast;interleaved=0-1


Received 84 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 461 Unsupported Transport
CSeq: 4
Date: Wed, Nov 30 2011 19:46:05 GMT


Sending request: SETUP rtsp://192.168.1.222:5555/testStream/track1 RTSP/1.0
CSeq: 5
User-Agent: LibVLC/1.1.12 (LIVE555 Streaming Media v2011.09.02)
Transport: RTP/AVP;unicast;client_port=6666-6667


[0x7f1f7c002860] live555 demux error: SETUP of'audio/MPA' failed 461 Unsupported Transport
[0x7f1f7c002860] live555 demux debug: RTP subsession 'video/MPV'
Opening connection to 192.168.1.222, port 5555...
...remote connection opened
Sending request: SETUP rtsp://192.168.1.222:5555/testStream/track2 RTSP/1.0
CSeq: 6
User-Agent: LibVLC/1.1.12 (LIVE555 Streaming Media v2011.09.02)
Transport: RTP/AVP/TCP;unicast;interleaved=2-3


Received 84 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 461 Unsupported Transport
CSeq: 6
Date: Wed, Nov 30 2011 19:46:05 GMT


Sending request: SETUP rtsp://192.168.1.222:5555/testStream/track2 RTSP/1.0
CSeq: 7
User-Agent: LibVLC/1.1.12 (LIVE555 Streaming Media v2011.09.02)
Transport: RTP/AVP;unicast;client_port=8888-8889


[0x7f1f7c002860] live555 demux error: SETUP of'video/MPV' failed RTSP response was truncated. Increase "RTSPClient::responseBufferSize"
[0x7f1f7c002860] live555 demux debug: setup start: 0.000000 stop:0.000000
[0x7f1f7c002860] live555 demux error: Nothing to play for rtsp://192.168.1.222:5555/testStream
[0x7f1f7c002860] live555 demux error: TCP rollover failed, aborting
[0x7f1f88005410] main input debug: EOF reached
[0x21fa840] main playlist debug: finished input
Opening connection to 192.168.1.222, port 5555...
[0x7f1f7c002860] main demux debug: removing module "live555"
[0x7f1f88005410] main input debug: thread ended
[0x21fa840] main playlist debug: dead input
[0x21fa840] main playlist debug: changing item without a request (current 0/1)
[0x21fa840] main playlist debug: nothing to play
[0x2227990] qt4 interface debug: IM: Deleting the input

Tutto sembra OK, se non con i seguenti due errori:

[0x7f1f7c002860] live555 demux error: SETUP of'audio/MPA' failed 461 Unsupported Transport

e

[0x7f1f7c002860] live555 demux error: SETUP of'video/MPV' failed RTSP response was truncated. Increase "RTSPClient::responseBufferSize"
[0x7f1f7c002860] live555 demux debug: setup start: 0.000000 stop:0.000000
[0x7f1f7c002860] live555 demux error: Nothing to play for rtsp://192.168.1.222:5555/testStream
[0x7f1f7c002860] live555 demux error: TCP rollover failed, aborting
È stato utile?

Soluzione

Ho il sospetto che questo potrebbe avere qualcosa a che fare con l'uso di un numero di porta non standard, ma potrei sbagliarmi. La porta RTSP IANA-assegnato è 554, e 8554 come IIRC secondaria.

Sembra che tu modifed il codice LIVE555 sul server da utilizzare al posto 5555. Tuttavia non si sa se l'utilizzo di VLC di supporti LIVE555 utilizzando numeri di porta RTSP non standard. Suppongo che si poteva guardare questo in su nel codice di VLC.

Cose che si possono provare:

  • uso openRTSP lavoro con l'URI
  • utilizzare una ventosa di pacchetto di vedere ciò che è effettivamente accadendo sulla rete cioè quali porte vengono utilizzati.
  • utilizzare la porta standard e vedere se funziona

Questi passaggi vi permetterà di restringere dove il problema è.

Modifica:

Dal RTSP Comms si può vedere che VLC sta cercando di creare una sessione unicast, le risponde server con un indirizzo di trasporto multicast. VLC gioca poi il flusso, non riceve dati per 10 e poi i tentativi di avviare un RTP interlacciato sopra sessione RTSP a cui il server risponde di nuovo con un indirizzo multicast e quindi le risponde server RTSP con 461. Secondo LIVE555:

testMPEG1or2AudioVideoStreamer legge un MPEG-1 o un file di 2 Program Stream (denominato "test.mpg"), estratti da questo un audio e un video Elementary Stream, e ruscelli questi, utilizzando l'RTP, al gruppo multicast 239.255.42.42, porto 6666/6667 (per il flusso audio) e 8888/8889 (per il flusso video). Questo programma ha anche un (opzionale) built-in server RTSP.

Altri suggerimenti

Avete più di un'interfaccia di rete? Il traffico può essere passare attraverso l'interfaccia sbagliata. Si potrebbe utilizzare Wireshark o altro packet sniffer per controllare che. Se questo dovesse essere il caso, questo thread di posta può essere utile: http://lists.live555.com/pipermail/live-devel /2007-May/006864.html

Nel mio caso la disattivazione macchina virtuale (VirtualBox in questo caso) le schede di rete hanno lavorato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top