<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
Been looking at converting VHS tapes into nice open digital media,<br>
using GStreamer naturally. However I&#39;m having problems getting smooth<br>
recordings.<br>
<br>
I&#39;m doing this on a Dual core Intel 3.06GHz with 4GB RAM running Fedora<br>
16 (64bit) and using a Hauppauge Win/TV pci, Brooktree Corporation<br>
Bt878 Video Capture card.<br>
<br>
Using tvtime to watch videos works fine and I can capture video (and<br>
audio) using mencoder with the following:<br>
<br>
mencoder tv:// -tv driver=v4l2:device=/dev/video1:alsa:adevice=hw.1,1 -oac copy  -ovc lavc -o video.avi<br>
<br>
and playback of the resultant video is smooth.<br>
<br>
<br>
However, I just can&#39;t get smooth video with GStreamer.<br>
<br>
E.g, using the following:<br>
<br>
gst-launch oggmux name=mux ! filesink location=vid.ogv v4l2src device=/dev/video1 ! videorate ! video/x-raw-yuv,width=320,height=240,framerate=25/1 ! ffmpegcolorspace ! queue ! theoraenc bitrate=800 ! queue ! mux. alsasrc buffer-time=100000 device=hw:1,1 ! audio/x-raw-int,channels=1,rate=119466 ! audioconvert ! queue ! vorbisenc ! mux.<br>

<br>
Works in as much as I get a Ogg Theora file that plays back and bits<br>
where there isn&#39;t a lot of movement look fine, however, scenes with a<br>
lot of (or not even that much) motion become choppy.<br>
<br>
Note: The above command was cobbled together by a lot of scouring the<br>
internet and trial and error. So I wouldn&#39;t be surprised if it&#39;s wrong<br>
in various ways.<br></blockquote><div><br></div><div><br></div><div>Hi Andrew,</div><div> I do not think it is a v4l2 problem. theoraenc plugins by default drops frames when the bitrate is not enough.</div><div>For a quick test why don&#39;t you increase your bitrate to say 5000 (just for a test of one file) and see if it still drops the frames. 5Mbps is waay to much for a 320x240 video sequence and hence if it was the encoder dropping it because bitrate wasn&#39;t enough you know you have found the problem.</div>
<div>eg.</div><div><meta http-equiv="content-type" content="text/html; charset=utf-8">gst-launch oggmux name=mux ! filesink location=vid.ogv v4l2src device=/dev/video1 ! videorate ! video/x-raw-yuv,width=320,height=240,framerate=25/1 ! ffmpegcolorspace ! queue ! theoraenc bitrate=5000 ! queue ! mux. alsasrc buffer-time=100000 device=hw:1,1 ! audio/x-raw-int,channels=1,rate=119466 ! audioconvert ! queue ! vorbisenc ! mux.<br>
</div><div><br></div><div><br></div><div>The solution is to set the property &quot;drop-frames&quot; to  false in theoraenc]</div><div><meta http-equiv="content-type" content="text/html; charset=utf-8">gst-launch oggmux name=mux ! filesink location=vid.ogv v4l2src device=/dev/video1 ! videorate ! video/x-raw-yuv,width=320,height=240,framerate=25/1 ! ffmpegcolorspace ! queue ! theoraenc bitrate=800 <b>drop-frames=0</b> ! queue ! mux. alsasrc buffer-time=100000 device=hw:1,1 ! audio/x-raw-int,channels=1,rate=119466 ! audioconvert ! queue ! vorbisenc ! mux.<br>
</div><div><br></div><div>This will reduce quality at the high motion frames but not drop them all together.</div><div>To get best possible quality at that rate, I suggest you first capture as a YUV and then encode it using two passes. However it might not be an option if you do not have the disk space etc or for other reasons in which case the above should work.</div>
<div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Any idea&#39;s would be appreciated.<br>
<br>
Cheers,<br>
Andrew<br>
<br><br></blockquote></div>