Hi<br><br>I'm trying to receive an RTP Elementary Stream and encapsulate that into a RTP Transport Stream on another multicast address and port number.<br><br>I used the testMPEG1or2VideoReceiver as a starting point and have 2 problems.<br><br>========================<br>If I change the input source from a file to a RTP ES, by using MPEG1or2VideoRTPSource and then use SimpleRTPSink to transmit out, I get the error<br>&nbsp;BasicTaskScheduler::SingleStep(): select() fails: Bad file descriptor<br><br>=========================<br>I am not able to encapsulate an ES that is read from a file&nbsp; into an RTP Transport Stream. I changed the sink to a FileSink and when playing back the file, the video jumps several frames on VLC. I have tried this with different ES sources and get the same result. Any ideas what steps is missing?<br><br>I modified the testMPEG1or2VideoReceiver function play as shown below<br><br>void play() {<br>&nbsp; // Open the input file as a 'byte-stream file
 source':<br>&nbsp; ByteStreamFileSource* fileSource<br>&nbsp;&nbsp;&nbsp; = ByteStreamFileSource::createNew(*env, inputFileName);<br>&nbsp; if (fileSource == NULL) {<br>&nbsp;&nbsp;&nbsp; *env &lt;&lt; "Unable to open file \"" &lt;&lt; inputFileName<br>&nbsp;&nbsp;&nbsp; &nbsp;&lt;&lt; "\" as a byte-stream file source\n";<br>&nbsp;&nbsp;&nbsp; exit(1);<br>&nbsp; }<br>&nbsp; <br>&nbsp; FramedSource* videoES;<br>&nbsp; // The input source is assumed to already be a Video Elementary Stream:<br>&nbsp; videoES = fileSource;<br>&nbsp; // Insert MPEG1or2VideoStreamFramer<br>&nbsp; MPEG1or2VideoStreamFramer* framer = MPEG1or2VideoStreamFramer::createNew(*env, videoES,<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; False, 5.0);<br><br>&nbsp; // Add ES to TS<br>&nbsp; MPEG2TransportStreamFromESSource * pESSource =<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 MPEG2TransportStreamFromESSource::createNew(*env);<br>&nbsp; <br>&nbsp; pESSource-&gt;addNewVideoSource(framer, 2);<br>&nbsp;&nbsp; MPEG2TransportStreamFramer * tsVideoSource = MPEG2TransportStreamFramer::createNew(*env, pESSource);<br>&nbsp; <br>&nbsp; // Finally, start playing:<br>&nbsp; *env &lt;&lt; "Beginning to read from file...\n";<br>&nbsp; videoSink-&gt;startPlaying(*tsVideoSource, afterPlaying, NULL);<br>}<br><br>Thanks for your help<br><br>William<br><p>&#32;
      <hr size=1> 
Yahoo! Answers - Get better answers from someone who knows. <a
href="http://uk.answers.yahoo.com/;_ylc=X3oDMTEydmViNG02BF9TAzIxMTQ3MTcxOTAEc2VjA21haWwEc2xrA3RhZ2xpbmU">Try
it now</a>.