Log in

View Full Version : Software player for extremely high speed playback


Blue_MiSfit
26th February 2011, 20:45
Hey folks,

A quick warning - this is a fairly long post. Skip to the TL;DR if you don't care about details

In my company, we have to perform Quality Control (QC) on a whole lot of video. Some of this is automatic (pure software), but some of it must be human powered, mainly to verify so-called "Heat Level" ratings on adult content, along with a basic 3 point audio/video sync check, and a quick verification that the file is not truncated or otherwise obviously incorrect.

The important thing here is that QC Operators DO NOT have to watch the media in real-time. Currently (using MPC-HC), we can comfortably play the video at 2x speed, which comes out to 60 frames per second, since this is all 29.97 fps content.

2x just isn't fast enough, however. So, I've begun searching for a player that can meet our requirements. I'll lay those out briefly

1) The player must support splitting an MPEG Transport Stream, and decoding SD MPEG-2 and H.264 (ranging from 352x480 to 528x480). It must also decode AC3 audio.

2) The player must have a timecode display for the aforementioned formats. After all, there's not much point in finding a flaw in a video if you can't communicate the location of said flaw! I don't require true SMPTE NTSC drop-frame timecode display, in fact HH:MM:SS is perfectly acceptable. Furthermore, it doesn't even need to be perfectly accurate (if at all) during high speed playback. It does, however, need to be reasonably accurate (within a second or so) if playback speed is reduced back down to 1x.

3) The player must be able to play video extremely quickly. The goal is 12x realtime, or ~360fps. I'm totally okay with dropped frames, and even losing audio at these speeds. Again, the emphasis is on QUANTITY, and not quality - quite the opposite from most open source projects like MPC-HC!

4) Optional, but wonderful to have would be full support for decoding closed caption data stored in MPEG-2 User Data per SCTE-20 / CableLabs, or in H.264 SEI messages, per ATSC A/72. These definitely don't need to be accurate or even present in high speed playback. Being able to check for the presence and rough sync of closed captions during ~1x playback speeds would be quite nice.

*whew, that was exhaustive, huh?

BTW, the QC PC is a 3.33 GHz Core 2 Duo with a Radeon 4000 series GPU, running Windows XP. I'm open to any version of Windows, or even Linux, if a proper player was ready and waiting!

Here's the story with the usual suspects:

1) VLC
Oh my goodness, VLC is almost completely perfect. It supports playback up to 32x realtime and beyond, though things get dicey above ~12x. Naturally, given my relatively simple MPEG-TS with H.264 or MPEG-2 requirements, it decodes all these files without a hitch. Heck, thanks to recent developments it even decodes and renders closed caption data quite nicely for both formats!

UNFORTUNATELY, its timecode display for MPEG-TS files simply shows no data. I'm not sure why, but I did check on #videolan, and was told this is expected behavior. I suppose we could pay someone to patch in support for this.

2) MPC-HC
Timecode does work here, so that's good news. It also supports my media formats. MPC-HC will play back at 2x RT quite gracefully, but won't even attempt to go higher. It also doesn't meet my "soft" requirement for CC decode without further investigating the possibility of using special, third party DirectShow filters. This is actually the current solution, since it's quite reliable with 2x RT.

3) PotPlayer
The story here is basically the same as MPC-HC, except the user interface allows you to at least attempt playback at up to 12x. Unfortunately, it doesn't seem to actually play at much faster than 2x, even if I as for 12x. I'm not as familiar with Pot Player as I am with MPC-HC, so there may be more tweaking I can do to improve this.

4) ???

This is where you come in, fellow doom9ers! Has anyone ever dealt with the desire / requirement to play video OMGFAST?

Apparently some old version of Nero Showtime used to actually handle 12x just fine on the operator's old computer. Every version I've tried doesn't seem to have much luck. Naturally, he's a little sad at having to watch so much mind numbingly repetitive content at 2x.

I welcome any and all suggestions, including payware. If it comes to it, we could probably sponsor a VLC developer to make timecode display with MPEG-TS files.

TL;DR, looking for a software player that can play back SD MPEG-2 and H.264 at very high speeds, with a working timecode display. Closed caption display would be nice!

Anyway, thanks for your time!
-Derek

b66pak
26th February 2011, 21:11
how about an avs script like this?

the source is a 640x352@23.976 avi...this script will increase the speed 10 times on my average one core PC...framenumber plugin here (http://forum.doom9.org/showthread.php?t=91968)...

avisource("sd.tvshow.avi").framenumber(0,1).frametc(0,0).assumefps(240000,1001).killaudio
_

Reimar
26th February 2011, 21:32
Tried MPlayer (possibly in the form of SMPlayer)? Closed Caption probably won't work (there's a patch but I must admit I never finished and integrated it) and other things also may or may not work as well as you need, but I think it should be worth a try.
The OSD provides a time code (also shown on the command-line if run from there), by default only up to a second precision but there is an option to make it more precise now if I remember correctly.

Blue_MiSfit
26th February 2011, 22:19
b66pak:

Thanks for the suggestion. The QC operator who will be working with these files isn't very savvy. He will definitely require a simple media player, with the ability to toggle high speed playback on and off at will.

Unless.... perhaps this could all happen inside of ffdshow!!!! Interesting idea!!

@Reimar:

Thanks for the suggestion also! I haven't tried mplayer yet, but it's on my list of things to try, along with ZoomPlayer.

Thanks again guys,
Derek

Blue_MiSfit
26th February 2011, 22:55
Update:

So the avisynth idea was a good one, and it was fine for previewing the script in AvsP etc. Unfortunatley, trying to make it work in ffdshow was a nightmare. No go.

SMPlayer on the other hand works wonderfully! It gets a little dicey at extreme speeds (16x+), but 10x and 12x seem to work relatively well, even keeping (chipmunk) audio. As an added bonus, it reacts very quickly to the "backspace" key press, which resets playback speed to 1x. Very cool!

The low CPU usage is astonishing. Granted, my content doesn't require much to decode under normal circumstances, but 3 mbps 352x480i MPEG-2 at 16x real-time uses about half a core on my quad-core laptop. That's impressive!

EDIT: GAAAH!! SMPlayer doesn't like my H.264 files. The video plays in slow motion, and there is no timecode... Still looking for another solution :(

Reimar
27th February 2011, 02:25
SMPlayer on the other hand works wonderfully! It gets a little dicey at extreme speeds (16x+), but 10x and 12x seem to work relatively well, even keeping (chipmunk) audio.

There's also an option to get nicer audio at fast speeds, though particularly with older versions it probably has issues at such very fast speeds.


EDIT: GAAAH!! SMPlayer doesn't like my H.264 files. The video plays in slow motion, and there is no timecode... Still looking for another solution :(

This sounds very wrong. I am not aware of any such playback speed issues in recent versions and I can see no way at all there could be no timecode, that is part of the core OSD functionality! I could imagine it might get stuck or other strange thinks, but not just not being there...

Blue_MiSfit
27th February 2011, 03:34
Hrm wait you're talking about OSD, as in overlaid on top of the video?

I'm referring to the timecode display in the bottom right corner of the SMPlayer GUI. How do I enable the OSD? Sorry... mplayer newb over here :)

Thanks,
Derek

TOM_SK
27th February 2011, 08:07
How about:

UMPlayer
http://forum.doom9.org/showthread.php?t=159397

Light Alloy
http://forum.doom9.org/showthread.php?t=159396

SPlayer
http://www.splayer.org/index.en.html

MPlayer WW
http://sourceforge.net/projects/mplayer-ww/
http://codecpack.co/download/MPlayer_WW.html

MPUI-HCB
http://sourceforge.net/projects/mpui-hcb/

ALLPlayer
http://www.allplayer.org/

Reimar
27th February 2011, 11:10
And I don't know much about SMPlayer, so this might be fun :-)
In MPlayer you can change the OSD state with the o key.
You can also use e.g. -osdlevel 3 on the command-line to enable it (there might be some special setting for it in the SMPlayer settings, otherwise there's some place where you can put custom command-line options).