Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum. |
| Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
 |
GNU/Linux Basic Guide
This 255-page guide will provide you with the keys to understand the philosophy of free software, teach you how to use and handle it, and give you the tools required to move easily in the world of GNU/Linux. Many users and administrators will be taking their first steps with this GNU/Linux Basic guide and it will show you how to approach and solve the problems you encounter.
Click Here to receive this Complete Guide absolutely free. |
|
 |
|
05-16-2010, 01:46 AM
|
#1
|
|
Member
Registered: Oct 2002
Location: Michigan
Distribution: Slackware, LFS, Gentoo
Posts: 158
Rep:
|
H.264 video lagging with MPlayer
As mentioned in an earlier thread, I've been playing around with a DVB-S card for about a week. I've worked out most of the initial problems I ran into, but now another one has cropped up.
Some broadcasts use H.264 video, rather than the more common MPEG-2. MPlayer plays it, but the audio and video go badly out of sync. It looks like the video is only running at half speed. I don't think this is due to a lack of CPU or video card power, because top shows only 76% utilization, and the desync still happens even if I disable video output (-vo null), or even if I transcode with MEncoder (the resulting file is desynched).
If it matters, the video I'm trying to watch is in 1080i resolution at 29.97 fps.
Any ideas?
|
|
|
|
05-16-2010, 07:38 AM
|
#2
|
|
Member
Registered: Apr 2005
Location: France
Distribution: Debian Squeeeeze
Posts: 115
Rep:
|
What CPU, mem and graphics card is in your system?
Do you have the open source or proprietary graphics drivers?
|
|
|
|
05-16-2010, 01:42 PM
|
#3
|
|
Member
Registered: Oct 2002
Location: Michigan
Distribution: Slackware, LFS, Gentoo
Posts: 158
Original Poster
Rep:
|
CPU: 2x dual-core AMD Opteron 290 (2.8 GHz)
RAM: 5.12 GB PC2100
GFX: Nvidia GeForce 7800GS AGP w/ binary driver 195.36.15
Last edited by Electrode; 05-16-2010 at 01:44 PM.
|
|
|
|
05-16-2010, 02:40 PM
|
#4
|
|
Member
Registered: Apr 2005
Location: France
Distribution: Debian Squeeeeze
Posts: 115
Rep:
|
Those specs should be enough, this is weird. Have you tried playing around with the nvidia settings (e.g. Anti-aliasing and stuff like that)? I would not know of anything else you could possibly try, sorry. One moment, maybe you need a realtime kernel, I need one of those because I do audio recording, with ardour. Maybe that could help? The latency on stock linux kernels is too high, maybe that is a possible solution. Then again, I have a core2quad 2.3Ghz, 6Gb Ram, Ge9800GT, and my work linux has an ordinary debian kernel, I sometimes don't bother rebooting into my "home" linux and watch tv over ADSL. I have HD content I watch with vlc, have not seen this happen on my system, it should technically be the same thing, hm. When I watch HD content fullscreen, my CPU use is at ~35%.
|
|
|
|
05-16-2010, 02:55 PM
|
#5
|
|
Member
Registered: Oct 2002
Location: Michigan
Distribution: Slackware, LFS, Gentoo
Posts: 158
Original Poster
Rep:
|
Haven't done much of anything with the video driver config other than setting up my dual-head display, but as I mentioned in the original post, I don't think the video card or driver has anything to do with this, since I can play HD MPEG-2 video just fine, and this problem occurs even when I disable video output.
I'm using a realtime kernel here as well.
|
|
|
|
05-16-2010, 07:15 PM
|
#6
|
|
Member
Registered: Oct 2002
Location: Michigan
Distribution: Slackware, LFS, Gentoo
Posts: 158
Original Poster
Rep:
|
I just tried VLC and that actually seems to be even worse than mplayer. CPU usage goes up to about 104% according to top and the video plays at about 2 FPS. During one test it actually crashed X, with dmesg showing several "machine checks".
|
|
|
|
05-17-2010, 04:46 AM
|
#7
|
|
Guru
Registered: Oct 2005
Location: $RANDOM
Distribution: slackware64
Posts: 12,610
|
Maybe try to increase the buffer size for mplayer, if the buffer is too small it could cause lagging and a/v desync:
Code:
mplayer -cache 4096
Last edited by H_TeXMeX_H; 05-17-2010 at 09:20 AM.
Reason: bufsize does not exist or is deprecated
|
|
|
|
05-17-2010, 09:10 AM
|
#8
|
|
Member
Registered: Oct 2002
Location: Michigan
Distribution: Slackware, LFS, Gentoo
Posts: 158
Original Poster
Rep:
|
There doesn't appear to be a -bufsize option, did you mean -cache?
|
|
|
|
05-17-2010, 09:19 AM
|
#9
|
|
Guru
Registered: Oct 2005
Location: $RANDOM
Distribution: slackware64
Posts: 12,610
|
Oh, yeah, oops, that must be deprecated, yes in the manual it says:
Code:
-cache <kBytes>
This option specifies how much memory (in kBytes) to use when precaching a file or URL. Especially useful on slow media.
It is '-cache'.
|
|
|
|
05-17-2010, 03:10 PM
|
#10
|
|
Member
Registered: Oct 2002
Location: Michigan
Distribution: Slackware, LFS, Gentoo
Posts: 158
Original Poster
Rep:
|
I've been using -cache 8192 all along (it's in my ~/.mplayer/config), it makes no difference in this case.
If it's of any significance, I see a lot of this when I try to play the video:
Code:
electrode@belphegor:~$ mplayer /dev/dvb/adapter1/dvr0
MPlayer SVN-r30554-4.4.2 (C) 2000-2010 MPlayer Team
Playing /dev/dvb/adapter1/dvr0.
Cache fill: 19.43% (1630208 bytes)
TS file format detected.
VIDEO H264(pid=517) AUDIO MPA(pid=751) NO SUBS (yet)! PROGRAM N. 9
FPS seems to be: 29.970030
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 48000 Hz, 2 ch, s16le, 384.0 kbit/25.00% (ratio: 48000->192000)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
[AO SDL] Samplerate: 48000Hz Channels: Stereo Format s16le
AO: [sdl] 48000Hz 2ch s16le (2 bytes per sample)
Starting playback...
[h264 @ 0xa5b9e0]number of reference frames exceeds max (probably corrupt input), discarding one
(previous message repeated hundreds of times)
[h264 @ 0xa5b9e0]mmco: unref short failure
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO: [xv] 1920x1080 => 1920x1080 Planar YV12
[h264 @ 0xa5b9e0]mmco: unref short failure 2/ 2 ??% ??% ??,?% 0 0
[h264 @ 0xa5b9e0]mmco: unref short failure 8/ 8 ??% ??% ??,?% 0 0
A:18127.0 V:18125.8 A-V: 1.193 ct: 0.168 126/126 56% 5% 1.1% 0 0
Exiting... (Quit)
In this case I killed the playback after about 3 seconds.
|
|
|
|
05-17-2010, 05:26 PM
|
#11
|
|
Member
Registered: Feb 2003
Posts: 964
Rep:
|
You might try:
-nocache
-lavdopts skiploopfilter=all
(-skiploopfilter 0 in vlc)
mpeg2video is a lot less CPU needy. Not that that cpu should be struggling that much. You might try:
ffplay -threads 0
Was that 5.12 GB of ram or 512MB aka 0.512GB?
|
|
|
|
05-17-2010, 06:01 PM
|
#12
|
|
Member
Registered: Oct 2002
Location: Michigan
Distribution: Slackware, LFS, Gentoo
Posts: 158
Original Poster
Rep:
|
The options you suggested have no impact whatsoever. ffplay maintains sync, but stutters badly and shows ~130% CPU utilization.
System has 5120 MB of RAM.
|
|
|
|
05-17-2010, 06:24 PM
|
#13
|
|
Member
Registered: Feb 2003
Posts: 964
Rep:
|
Are you running a kernel optimized for an i386? or 686 or better?
Distro version of mplayer? Or compiled from source?
Does -noaudio for mplayer make a noticeable difference (cpu usage)? If it's AAC audio, some implementations of it are in a lot of flux and some are not optimized well. To the point of almost taking longer to decode the audio than it does to decode the video.
|
|
|
|
05-17-2010, 06:30 PM
|
#14
|
|
Member
Registered: Oct 2002
Location: Michigan
Distribution: Slackware, LFS, Gentoo
Posts: 158
Original Poster
Rep:
|
x86-64 kernel. Everything built from source.
-noaudio makes no difference. Audio is in MP3 format.
|
|
|
|
05-17-2010, 07:08 PM
|
#15
|
|
Member
Registered: Oct 2002
Location: Michigan
Distribution: Slackware, LFS, Gentoo
Posts: 158
Original Poster
Rep:
|
Some observations:
* the latest ffmpeg gives garbled video output. SVN r20373 works better.
* I tried building a 32-bit ffplay binary in a chroot, and that uses much less CPU (102% vs. 130%).
* Building a 32-bit mplayer seems to make no difference vs. 64-bit.
|
|
|
|
| Thread Tools |
Search this Thread |
|
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -5. The time now is 08:04 PM.
|
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|