On 01/01/2008, <b class="gmail_sendername">Stuart Morgan</b> <<a href="mailto:stuart@tase.co.uk">stuart@tase.co.uk</a>> wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Tuesday 01 January 2008 13:52:43 Ashley Bostock wrote:<br>> mplayer, xine, etc... will play most files you throw at them and<br>> ffwd/rewind without issue. For the Internal player you have to make sure<br>> you have pre-built a seek table for each file otherwise it doesn't
<br>> ffwd/rewind at all, or is very jumpy, and/or you get sound still playing<br>> while it does so. I think most people are put off straight away when that<br>> doesn't work and just switch to using an external player. Once that part
<br>> gets automated I think more people will use it. On a side note, any idea<br>> why myth needs the seek table to be built when mplayer, xine, etc... don't<br>> have any problems at all? Only time I've been prompted by mplayer or xine
<br>> to rebuld one (assuming that's the same thing) is if I have a slightly<br>> broken avi file. Aren't these stored in the file already?<br>><br>> Ash<br><br>The seeking without a seektable is a little broken in trunk, it needs fixing
<br>but it's off the radar of most devs because recordings will generally have<br>seektables. It shouldn't be hard to do though and if someone opens a ticket<br>it will probably get fixed for 0.21.<br><br>To explain the reason for building seektables I'm just going to
<br>copy/edit/paste what I said in IRC last night to this same question:<br><br>By building a seektable mythtv can do frame accurate skipping and smoother<br>ffw/rew etc. Notice that mplayer/xine don't really offer ffw/rew.
<br><br>In order to skip etc you need to move the read pointer ahead in the file. So<br>you need to know what point in the file is equal to the time unit used. e.g.<br>1 minute might be 36,163 bytes ahead in the file.<br>
<br>Mplayer/xine etc just make guesses based on average bitrate, so although you<br>are asking them to skip 1 minute forward in the video, they might actually do<br>anything from 45 seconds to 1 minutes 15 seconds.<br><br>
When you build a seektable in mythtv, we go through the file at high speed and<br>record the location of every keyframe, so when you skip 1 minute you move<br>exactly one minute in the video. We are not performing calculations to work
<br>out the correct byte/jump amount and can skip much faster, thus allowing<br>FFW/REW as well as accuracy down to the exact frame of video.<br>--<br>Stuart Morgan<br>_______________________________________________<br>mythtv-dev mailing list
<br><a href="mailto:mythtv-dev@mythtv.org">mythtv-dev@mythtv.org</a><br><a href="http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev">http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev</a><br></blockquote></div><br>Thanks for the explanation, that does make sense.
<br><br>Other reasons I don't use the Internal player is that many of the video podcasts I watch do not play correctly or even at all.<br><br>Few examples I just tried (with svn 15223 tested lastest episode from each feed)...
<br><a href="http://www.hak5.org/rss/xvid.xml">http://www.hak5.org/rss/xvid.xml</a> - Plays video but no sound.<br><a href="http://revision3.com/systm/feed/quicktime-large">http://revision3.com/systm/feed/quicktime-large
</a> - Get a black screen as if its about to play, then just goes back to the video info screen.<br><a href="http://revision3.com/tekzilla/feed/quicktime-high-definition">http://revision3.com/tekzilla/feed/quicktime-high-definition
</a> - Crashes mythfrontend completely.<br><a href="http://revision3.com/pixelperfect/feed/quicktime-high-definition">http://revision3.com/pixelperfect/feed/quicktime-high-definition</a> - Get a black screen as if its about to play, then just goes back to the video info screen.
<br><a href="http://revision3.com/diggnation/feed/quicktime-high-definition">http://revision3.com/diggnation/feed/quicktime-high-definition</a> - Crashes mythfrontend completely.<br><br>All these work fine using mplayer and with those that are high def
h.264 I can use the -lavdopts fast:threads=2 option so that it shares the load across my 2 cores, can the Internal player do that?<br><br>I haven't built any seektables for these videos, but I think I'm right in saying that shouldn't affect straight playback - just limitation on ffwd/rewind.
<br><br>Ash<br><br><br>