Difference between revisions of "Talk:Simple DVB with Gstreamer and GNU Radio"

From MyLabWiki
Jump to: navigation, search
(Logbook)
(Logbook)
 
(8 intermediate revisions by the same user not shown)
Line 74: Line 74:
 
* With camera it looses sync after a few minutes and mplayer spits out "Ogg: bad packet in stream 0" messages.
 
* With camera it looses sync after a few minutes and mplayer spits out "Ogg: bad packet in stream 0" messages.
 
* Pushed updated code to http://github.com/csete/gnuradio-dvb
 
* Pushed updated code to http://github.com/csete/gnuradio-dvb
 +
* Made a [http://www.oz9aec.net/index.php/gnu-radio/gnu-radio-blog/372-an-experiment-with-theora-and-ogg-for-dvb blog post] about the Theora+Ogg experiment.
  
 
=== 2010.09.05 ===
 
=== 2010.09.05 ===
Line 83: Line 84:
 
* Packet encode payload size or "Pad for USRP" does not make any difference
 
* Packet encode payload size or "Pad for USRP" does not make any difference
 
* Also freezes when using pre-recorded video file as input to GNU Radio → It is not Gstreamer
 
* Also freezes when using pre-recorded video file as input to GNU Radio → It is not Gstreamer
* Also freezes when running in simulator mode → It is not the USRP
+
* Also freezes when running in simulator mode → It is not the USRP (Uhm... This is TBC! I think it is just a typo in my notes)
 
+
  
 
=== 2010.09.06 ===
 
=== 2010.09.06 ===
Line 93: Line 93:
  
 
* Setup tested again using separate RX and TX: The video freezes every 2 seconds also occurs in this case just as when running in transceiver mode
 
* Setup tested again using separate RX and TX: The video freezes every 2 seconds also occurs in this case just as when running in transceiver mode
 +
* Tried to connect USRP and webcam on different USB hosts → still have the freeze
 
* OZ2ABA suggested to add a monitor to the to see if it can narrow down where the problem occurs (at this point I forgot about the results with the simulator and the file input to GR, see 2010.09.05)
 
* OZ2ABA suggested to add a monitor to the to see if it can narrow down where the problem occurs (at this point I forgot about the results with the simulator and the file input to GR, see 2010.09.05)
 +
* Thinking that I should maybe also try an UDP interface between Gstreamer and GNU Radio on the TX side.
 +
 +
=== 2010.09.08 ===
 +
 +
* Reran the setup in the simulator and as expected, no freezing in the stream (c.f. last note from 2010.09.05)
 +
* Tried adding a TX monitoring FIFO to the TRX flow graph → it's choppiness was much worse than the receiver. The freezes cam much more frequently and seemed to be irregular. Same result when using the TX-only flow graph.
 +
* Tried playing a bit with the filesink parameters (sync, async, buffered) but didn't make any difference. There are still some buffer sizes but I find it difficult to understand what the various parameters control. I guess I will have to look at the source code for that.
 +
 +
=== 2010.10.06 ===
 +
* Got a message from Gallamine that the experiment DVB setup was used to [http://www.oz9aec.net/index.php/gnu-radio/gnu-radio-blog/363-full-duplex-transceiver-version-of-the-dvb-setup#comment-84581487 do streaming video over an underwater laser link] :)
  
 
[[Category:Logbooks]]
 
[[Category:Logbooks]]

Latest revision as of 14:47, 6 October 2010

Logbook

2010.07.24

  • Building on the success of transferring data between GNU Radio and multimon using a named pipe, I decided to try the same trick to send real time video from Gstreamer to GNU Radio. It worked!

2010.07.25

  • Implemented a simple video transmission simulator by sending the video through a GMSK modulator, adding noise, then GMSK demodulator. See recorded video.

2010.07.26

  • Although the MPEG-TS muxer available in Gstreamer can not deliver CBR, sending the GMSK modulated video to the USRP didn't seem to be a problem.
  • Having only one USRP I didn't try to receive and decode the video.

2010.07.27

  • Successful on the air tests of the DVB setup using a videotestsrc
  • Location: OZ7SAT

2010.07.28

2010.08.07

  • At Høm for the weekend and only brought one USRP and one laptop
  • Created a full duplex transceiver version of the GMSK TX+RX so that I could run both transmitter and receiver using only one USRP and computer: http://www.youtube.com/watch?v=dJg2zAd3kRY
  • The transceiver was running stable for more than 4.5 hours, see last screenshot.
  • With this setup, the video appeared to be more choppy than with the two-computer setup.

2010.08.08

2010.08.19

  • GMSK modulator generates 2 samples/symbol and I have 1 bit/symbol. Therefore, the input data rate to the GMSK modulator should be 500 kbps for a 1 Msps stream to the USRP.
  • The packet encoder adds 12 bytes overhead to each packet – at least when using default access code. With a payload size of 4000, this overhead corresponds to 1.5 kbps.
  • Setting H-264 encoder bitrate to 498 kbps (didn't make much difference).

2010.08.20

2010.08.21

  • Tried to make a simple video input switcher based on the switch.py example and although I can switch between the inputs, I can not have both local monitor and H.264 encoder attached to the output (using a splitter of course). This is weir since I have done pretty much the same in my webcam example in the Gstreamer Cheat Sheet.

2010.08.22

  • Found out the problem is connecting the splitter to H.264 -- the setup works fine using theoraenc!

2010.08.23

  • Found out that on Ubuntu 9.10 the multicam.py also works with H.264
  • The Gstreamer packages are the same on 9.10 and 10.04 (I use PPA), but, the x264enc plugin is in the plugins-ugly-universe, which is Ubuntu and not PPA package. So it could be either due to libx264 or x264enc plugin or both.
  • The input-selector appears to cause 100% CPU load on one core. Confirmed by executing two equivalent pipelines without input-selector which had much lower CPU load.

2010.08.27

  • Created a mapping between Pixel formats for camera, fourcc and gstreamer.

2010.09.03

  • Tested Theora in Ogg container using videotestsrc and the simulator. Worked very well.

2010.09.04

  • Tested the Theora version using the gmsk_trx script. Worked well and very stable for 2+ hours using the videotestsrc.
  • With camera it looses sync after a few minutes and mplayer spits out "Ogg: bad packet in stream 0" messages.
  • Pushed updated code to http://github.com/csete/gnuradio-dvb
  • Made a blog post about the Theora+Ogg experiment.

2010.09.05

  • Did a few experiments studying the video freeze every 2 seconds (for ~300 msec). Noticed it before but didn't look into the problem in details.
  • Used the transceiver setup (only have one USRP at the moment)
  • The freeze occurs at any frame rate and video size and is always 2 seconds
  • The freeze only occurs when I have both USRP and camera connected - the stream runs smoothly when using a video test pattern (no camera)
  • Packet encode payload size or "Pad for USRP" does not make any difference
  • Also freezes when using pre-recorded video file as input to GNU Radio → It is not Gstreamer
  • Also freezes when running in simulator mode → It is not the USRP (Uhm... This is TBC! I think it is just a typo in my notes)

2010.09.06

  • Confirmed that the freeze every 2 seconds also occur on the much faster (i7) computer

2010.09.07

  • Setup tested again using separate RX and TX: The video freezes every 2 seconds also occurs in this case just as when running in transceiver mode
  • Tried to connect USRP and webcam on different USB hosts → still have the freeze
  • OZ2ABA suggested to add a monitor to the to see if it can narrow down where the problem occurs (at this point I forgot about the results with the simulator and the file input to GR, see 2010.09.05)
  • Thinking that I should maybe also try an UDP interface between Gstreamer and GNU Radio on the TX side.

2010.09.08

  • Reran the setup in the simulator and as expected, no freezing in the stream (c.f. last note from 2010.09.05)
  • Tried adding a TX monitoring FIFO to the TRX flow graph → it's choppiness was much worse than the receiver. The freezes cam much more frequently and seemed to be irregular. Same result when using the TX-only flow graph.
  • Tried playing a bit with the filesink parameters (sync, async, buffered) but didn't make any difference. There are still some buffer sizes but I find it difficult to understand what the various parameters control. I guess I will have to look at the source code for that.

2010.10.06