Page 1 of 2

VC-1/H.264 playback too slow with VLC

Posted: 10 Oct 2007 15:05
by thatisthat
I've got an HD video file (demonstration of HD capabilities) which has the following properties:

- Matroska container file (.mkv)
- 1 video stream: VLC reports codec: avc1, mplayer reports codec: FFmpeg H.264 (V_MPEG4/ISO/AVC)
- 1 audio stream: AC3

The properties of the video stream are: avc1 1920x1080 24bpp 23.976fps

VLC tries to play the file but produces broken video output, black screens, blocked/damaged video frames, basically it displays the effects of what it looks like to play a video file on a slow computer.

Some people may even say that this kind of HD content can't be played on this computer, wrong of course since mplayer plays the file on the same computer without a problem at full speed, and also mplayer plays the same file on other much smaller computers like an Athlon 3800. As a result, it seems like VLC's support for the avc1 codec is at fault.

I'd appreciate everyones comments on this issue and how to play vc-1 full HD content with VLC.

PS:
The system is:
Windoze Vista Ultimate
Tyan Thunder K8WE
Dual Opterons 270 Dual core (4 logical cpus)
4GB of RAM
NVIDIA 7800GTX PCI-Express 512MB
SCSI RAID array with 8 10,000rpm harddrives in RAID5
SATA RAID array with 2 harddrives in RAID0
Connected via HDMI to a SONY BRAVIA 40" full HD

Re: VC-1/H.264 playback too slow with VLC

Posted: 10 Oct 2007 15:06
by thatisthat
oh, i believe i forgot to mention that i'm using VLC version 0.8.6c.

Re: VC-1/H.264 playback too slow with VLC

Posted: 10 Oct 2007 19:28
by VLC_help
Try nighly builds or try --codec dmo switch from commandline.

Re: VC-1/H.264 playback too slow with VLC

Posted: 10 Oct 2007 19:51
by Jean-Baptiste Kempf
Well, next version will be better for that.
But, you can deactivate loop filter for this codec.

Re: VC-1/H.264 playback too slow with VLC

Posted: 10 Oct 2007 19:53
by thatisthat
i downloaded the latest nightly build, i'll test it soon and report the results.

Re: VC-1/H.264 playback too slow with VLC

Posted: 11 Oct 2007 07:59
by thatisthat
(wow, the new interface is really sleek!)

No difference, unfortunately. The playback of the avc1 video is very broken.

Re: VC-1/H.264 playback too slow with VLC

Posted: 11 Oct 2007 08:56
by Jean-Baptiste Kempf
Are you under windows ?
Are you using a VC-1 or a H264 codec?

Re: VC-1/H.264 playback too slow with VLC

Posted: 11 Oct 2007 09:05
by thatisthat
I've already mentioned those details, yes i'm under Vista Ultimate 64bit and VLC reports VC-1 (avc1) codec (mplayer reports something slightly different).

I'm not an expert in codecs, so i don't know the difference between WMV9/VC1/H264/etc. Could it be that VLC detects the codec wrongly? or are those codecs the same thing?

Re: VC-1/H.264 playback too slow with VLC

Posted: 11 Oct 2007 09:44
by enkidu
I'm not an expert in codecs, so i don't know the difference between WMV9/VC1/H264/etc
WMV9 : Microsoft MPEG4-part2-based codec
VC1 : Microsoft MPEG4-part10-inspired codec
H264 : the MPEG4-part10 Standard (there are many implementations : MainConcept, Nero, x264, Pinnacle, QuickTime, etcetera)

Reminder :
MPEG4-part2 = ASP (DivX, Xvid, QuickTime Mpeg4, etc)
MPEG4-part10 = AVC = H264

Back to your problem, I'd like to know :
1. what ForceWare version you are running for your NVIDIA 7800GTX.
2. what codec your MPlayer is using when playing back your files.

The problem might be that, as you know, VLC does not provide access to GPU hardware acceleration. It could be that MPlayer is using a codec that does use GPU acceleration, hence the smoother playback.

cheers
enkidu

Re: VC-1/H.264 playback too slow with VLC

Posted: 11 Oct 2007 09:56
by thatisthat
aaah i see, then i believe my video demo is definitely an MPEG4-part10 codec, but i don't know if its the Microsoft inspired one or one of the other standards.

now to answer your questions:

1. 163.69_forceware_winvista_64bit_english_whql.exe

2. here is the relevant output from mplayer:
[mkv] Track ID 1: video (V_MPEG4/ISO/AVC), -vid 0
[mkv] Track ID 2: audio (A_AC3), -aid 0, -alang jpn
[mkv] Will play video track 1
Matroska file format detected.
VIDEO: [avc1] 1920x1080 24bpp 23.976 fps 0.0 kbps ( 0.0 kbyte/s)
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
==========================================================================
Opening audio decoder: [liba52] AC3 decoding with liba52
Using SSE optimized IMDCT transform
Using MMX optimized resampler
AUDIO: 48000 Hz, 2 ch, s16le, 448.0 kbit/29.17% (ratio: 56000->192000)
Selected audio codec: [a52] afm: liba52 (AC3-liba52)
==========================================================================
AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)
Starting playback...
VDec: vo config request - 1920 x 1080 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO: [xv] 1920x1080 => 1920x1080 Planar YV12 [fs]
thank you for taking the time to help me, i appreciate it.

Re: VC-1/H.264 playback too slow with VLC

Posted: 11 Oct 2007 10:02
by thatisthat
out of curiosity, is it possible to use NVIDIA's purevideo HD hardware acceleration that exists in the newer GeForce cards? i believe the new WinDVD8 can do it as well as some PureVideo Player released by NVIDIA.

Re: VC-1/H.264 playback too slow with VLC

Posted: 11 Oct 2007 10:37
by enkidu
Your video is definitely not Microsoft stuff, it's H264.
out of curiosity, is it possible to use NVIDIA's purevideo HD hardware acceleration that exists in the newer GeForce cards? i believe the new WinDVD8 can do it as well as some PureVideo Player released by NVIDIA.
if you're using 163.69_forceware_winvista_64bit_english_whql.exe then you probably hang around laptopvideo2go.com.
Check out this ongoing thread (read the entire thread, not just the last posts) :

http://www.laptopvideo2go.com/forum/ind ... opic=14863

Also, your ForceWare reveals you're running Vista 64-bit. I don't know VLC or MPlayer behaviour under 64-bit environments. You better ask around.

cheers
enkidu

Re: VC-1/H.264 playback too slow with VLC

Posted: 11 Oct 2007 11:34
by thatisthat
Thanks for the help.

Apparently VLC isn't doing any kind of hardware acceleration and the software playback is also bad, on this kind of hardware it should do software playback without any problem, which means there are some bugs here.

Anyway, i read the thread you provided above (thanks for that), it seems there are a several differences in the forceware drivers that could affect video playback. Unfortunately, i can't install an older version of the driver because anything older breaks DirectX games in Vista.

I'll have to try PowerDVD, since everyone suggested that it can do PureVideo HD playback with hardware acceleration. If PowerDVD doesn't play the video properly then the problem is in the forceware drivers.

Re: VC-1/H.264 playback too slow with VLC

Posted: 11 Oct 2007 11:52
by funman
can you see how much cores the different players are using when decoding the video ?

there is support for parallel h264 decoding since 05 september, so maybe the nightlies for windows haven't been updated

Re: VC-1/H.264 playback too slow with VLC

Posted: 11 Oct 2007 12:01
by enkidu
I agree your hardware should handle the load, so software's the problem -- but which chunk ??

It's a shame to run crappy Vista on such hardware ...

post your results if/when you find a solution.

cheers
enkidu

Re: VC-1/H.264 playback too slow with VLC

Posted: 15 Oct 2007 04:57
by ryhor
Greeting

Sure there is nothing to vlc in this question. FFMPEG h264 decoder isn't optimal internally - this is if you try to don't use "bad" words :). Personally have deep experience with Entropy decodimg part of ffmpeg - there is no any chances for HD :) 6-8Mbps stream 7fps for 3.2GHz PPC little better for intel core - but still far from real time decoding.

However - here isn't a place to discuss FFMPEG.
But re-engineering and multicore - speed up FFMPEG to real time - tried - works :).

Re: VC-1/H.264 playback too slow with VLC

Posted: 15 Oct 2007 08:02
by thatisthat
Is this faster "ffmpeg" going to be included in VLC in the future?

Re: VC-1/H.264 playback too slow with VLC

Posted: 15 Oct 2007 09:23
by ryhor
I am sorry if I misinform someone here.

I am not from FFMPEG team - I've just shared my achieved experience.

There are a lot of possible improvements in h264 decoder from FFMPEG. I hope eventually they will come - as HD video knocking in the door. Sure I can share my experience - but can't spend time directly for development process.

Re: VC-1/H.264 playback too slow with VLC

Posted: 28 Oct 2007 08:53
by Lotesdelere
VLC tries to play the file but produces broken video output, black screens, blocked/damaged video frames, basically it displays the effects of what it looks like to play a video file on a slow computer.
Try this: open the Preferences and tick the 'Advanced options' box, then go to Input / Codecs -> Other codecs -> FFmpeg
Change the loop filter: in the drop-down box for 'Skip the loop filter for H.264 decoding' change it to 'All'

BTW the FFmpeg version used in VLC does not support PAFF interlacing yet. It should be implemented soon :)

Re: VC-1/H.264 playback too slow with VLC

Posted: 30 Oct 2007 03:25
by vlan-user
Hi:

I am using Win98, 2.4 GHz Pentium 4, 500MB RAM, ATI Radeon Graphics card (AGP 4x) with 64MB and VLC 0.8.6c. I am having problem playing a video encoded in x264 in 1280x720. The video is slow and choppy. Have done what Lotesdelere suggested and also set input/codecs--> Video codecs --> x264 , skip loop filter, still can't see the video properly. Anything else I should set or unset? Is the resolution in x264 too much for my card? I have no problems playing the same resolution in DivX or XVid. Sorry if this sounds like x263 problem. Just want to resolve this as soon as I can. Thanks.

Out of curiosity, what are the advantages using x264/h264 for offline/non-streaming video?

Re: VC-1/H.264 playback too slow with VLC

Posted: 30 Oct 2007 08:47
by ryhor
Hi!
- The reason for offline h.264 is just stay unchanged - same quality with lower bitrate or better quality for same bitrate compare to predecessor.
- Disabling "deblocking-filter" is an tricky way - it is disable one of algorithmic advantage of h.264.
- As I understand VLC - i.e. ffmpeg actually for this case - it doesn't use your video card for decoding process.
- And finally - that CPU just isn't fast enough for decoding such h.264 stream by current ffmpeg implementation of standard.

Re: VC-1/H.264 playback too slow with VLC

Posted: 30 Oct 2007 13:31
by VLC_help
deblocking-filter doesn't mean that much with video that has HD resolution. And there isn't so much you could with AGP 4x videocard that would help decoding of video, even if FFMPEG would support video card acceleration =)

Re: VC-1/H.264 playback too slow with VLC

Posted: 30 Oct 2007 14:50
by vlan-user
thanks for inputs from ryhor and VLC_help. I guess my hardware just don't cut it . A few years back , I bought this computer just to see DivX/XVid, then now h/x264. One just can't keep upgrading hardware for different transcoding standards. In my case, I have to upgrade to a PCI Express card, that also means a new motherboard with this interface, and new hard drive because of SATA only for newer motherboard and possibly a new CPU. They really know how to get the last cents out of one's pocket. :S

Re: VC-1/H.264 playback too slow with VLC

Posted: 31 Oct 2007 03:07
by ryhor
Hello

If your target is just playing h.264 on your hardware you may try to look on commercial decoders at first. Can't remember exact info but something like 50% of CPU load for 2Ghz P-4 - that what I maybe have heard somewhere before :). Try google and check. Sure hardware upgrade is more exciting, but as always question is - what is a target? :)

Re: VC-1/H.264 playback too slow with VLC

Posted: 31 Oct 2007 16:18
by VLC_help
CoreAVC might be the best bet. And hardware is very cheap nowadays =)