AnimeSuki Forum (
-   Playback Help (
-   -   My MPlayer build (

Kovensky 2008-07-21 11:04

My MPlayer build
UPDATE: After a long time without entering AnimeSuki, I return to give the url to where I host my builds now: The releases are listed under the "Release History" section.

Get r27492 here. File size for latest version is 7228106 bytes (6,89 MB), CRC checksum is 082420CF.
It works on wine too, and surprisingly fast.
The single file needed is packed with UPX, so I didn't pack it again with 7z/rar/whatever.

If anything breaks, blame movax. If you don't feel satisfied with that, post your problem here or seek me on :)

Nicholi, from CCCP, also hosts a MPlayer build. His build can be found here, but it is a bit old.

The diff I used to build the latest version will be uploaded later.
The hack to make fontconfig use Windows' font and temp dir can be found here.

The very first time you run MPlayer, it will take a while to begin playing. It will be building a cache of every font you have installed on your computer. It will load very fast the next time your run it, unless you install/uninstall/modify a font on Windows' font dir or remove the ".cache-2" files on %windir%\Temp.

Changelog -- Date - MPlayer revision (FFmpeg revision) [CRC]:
20080829 - r27492(r15034) [082420CF]: More H.264 fixes and speedups. Assembly magic speedup by Loren Merritt. AC-3 downmixing speedups. The AAC decoder has been fully committed, and already got speed improvements; it is not the default yet on my build due to lack of HE-AAC support. Lots of matroska fixes/new features, but nothing that allows subtitles to work properly *sigh*. Anton Khirnov submitted a patch for ordered chapters support, it is still waiting for bashing from the matroska maintainer. DV100/DVCPRO HD decoding/demuxing implemented. lavf is now the default matroska demuxer upstream, but due to those subtitle problems and higher CPU usage I kept mplayer's internal demuxer as the default. New, simplified config file.
r27448(r14686): Fixed the directx VO. libass improvements and bugfixes. On ffmpeg: more and more h.264 fixes, lavf matroska demuxer practically rewritten with a patch frenzy from aurel, new decoder for Electronic Arts TGV, fixes for Fraps decoder. superdump's AAC decoder is making it's way into the libavcodec tree, expect me to drop faad in a few builds :)
r27415(r14537): Internal changes: Too many to list. This version includes HIGHLY EXPERIMENTAL support for matroska ordered chapters that is disabled by default, because ASS subtitles can get bad timing. Instructions for enabling it further down the post. libavformat is now used as the default demuxer for MPEG-PS and AVI files; allowing MPlayer to seek on incomplete AVI files without having to rebuild the index. It also makes ffmpeg's own AC-3 decoder work.This build doesn't include liba52, libvorbis, libtremor or libmpeg2; this brought the binary size down. I fixed ffvorbis segfault by disabling it's sse2 code; it triggered some bug on old AMD cpus. New configuration changes: "channels=6" to allow 5.1 audio and "subfont-osd-scale=4", for a smaller but still nicely-sized OSD. Let me know of any audio problems.
r27347(r14373): First cross-compiled version. Minor H.264 fixes, CAVLC related. Dirac support, live555 support.
r27340(r14348): H.264 bugfixes, VC-1 in-loop deblocking and right-mouse-button fullscreen.
r27332(r14332): Work around crashy ffvorbis and buggy libvorbis by using lavf as the default mkv demuxer. And Michael Niedermayer is doing some nice optimizations to H.264 decoding :D
r27332(r14328): Über Hack fix for fontconfig bug.
r27330(r14320): Initial release.

Basic usage:
Just drag a media file and drop it on "mplayer.exe".
A DOS box will appear with some text. This is mplayer's diagnostic output. Don't close it.
After loading, a window will appear with the video.
To pause/unpause, click mplayer's window. To go fullscreen, right click it.

Keyboard Cheat Sheet:

'q': Quit mplayer
Space: Pause/unpause
Left/Right: Skip 10 seconds backwards/forwards
Up/Down: Skip 1 minute
PgUp/PgDn: Skip 10 minutes
'!'/'@': Go to previous/next chapter
'9'/'0': Decreases/increases volume
'f': Go fullscreen
's': Take screenshot
'o': Shows several levels of on-screen display. The levels are: Disabled, Minimal, Time and Full.
'#': Changes audio track. Broken with OGG/OGM files.
'j': Changes subtitle tracks.
'v': Shows/hides subtitles.
'z'/'x': Changes the subtitles delay.
'd': Enables/disables frame dropping.
'['/']': Decreases/increases speed
Backspace: Go to normal speed

Available here.

Release Notes:
This is a copy of the source I use to build MPlayer on Linux with 6 months worth of hacks unworthy to go upstream and a handful of patches that Nicholi used on his build. It is kept synchronized with SVN.
The icon is taken from Gianluigi Tiesi's build (that don't support ASS properly).
If anyone wants mencoder or ffmpeg, let me know.
You can also use MPlayer to play DVDs, encrypted or not. To do that, however, you need to use a MPlayer front-end or the command line. More information on this when I set up my system to build SMPlayer; for now, if you're interested in playing DVDs using MPlayer read the manual.

[B}Matroska Ordered Chapters support[/B]:
To use the experimental Matroska Ordered Chapters support, you will need to enable it manually. If you use mplayer from the command line, simply pass the additional options to it:

-demuxer lavf
If you use the drag-and-drop method, or want to make lavf demuxing the default; look for a folder called "mplayer" on the same folder where you saved mplayer.exe. Inside it there is a file called "config", without extension. Open that file using Wordpad (Notepad won't work); go to the end and add the following line:

The Ordered Chapters support has some problems with ASS subtitle timings and if there is any change on the video/audio codec configuration; such as a sudden bitrate/frequency change. The ASS problem is there even without the experimental support, tough; that's the main reason lavf demuxer still isn't the default.

Known Bugs:
- Fixed on r27347. Scab reported problems with H.264 decoding on his computer.
- Fixed on r27347. The new Dirac support is failing to build here. I hate pthreads-w32. Nobody uses Dirac anyway (yet).
- Fixed on r27340. Fullscreen is on Middle-click, not Right-click. My bad :heh:.
* Audio stream switching isn't working with OGG/OGM.
- Fixed on r27347. RTSP support is b0rked because I can't get mplayer to link with LIVE555.
* Fixed on r27415. ffvorbis is the VERY crashy and libvorbis is leaking.
* Unconfirmed. r27415's dvdnav:// is failing to initialize. dvd:// is fine. Could be my DVD drive acting up, tough.

Default Configuration:

#vf=screenshot,expand,ass,scale # Allows screenshots and prevents subtitle flickering -- Next version
subfont="Arial" # This is for non-ass subtitles and for the On-Screen Display
afm=libvorbis # ffvorbis is crashy as hell

Eviltape 2008-07-23 07:25

Everything checks out, awesome. Your build will do well in trying to solve any problems that Directshow and the like will throw at me. :)

Slice of Life 2008-07-23 09:08

Sorry, I only see an exe-file. If you modified the sources then where are they? Or did you just compile the latest version(s)?

Kovensky 2008-07-23 09:10

Well, all I did was modify some configure tests and fix a few build/runtime failures... If you want, I can post a .patch here.

Slice of Life 2008-07-23 09:26


Originally Posted by Kovensky (Post 1750217)
Well, all I did was modify some configure tests and fix a few build/runtime failures... If you want, I can post a .patch here.

You should. When you modify GPL code and distribute a complied version without with code then it's technically warez you're distributing. I appreciate very much what you're doing but when people don't make their hacks transparent and different hacked closed versions begin to circulate it hurts the development of open software as a whole. Never forget this stuff is done for free and distributed freely. As opposed to e. g. what Sony Entertainment does who can hire as much lawyers as they want.

Discerptor 2008-07-23 09:28

It's good to see how much interest people have been taking in MPlayer, and there seems to be even more enthusiasm since the addition of multithreaded decoding. Nice work making this so easy for the Windows folk. Oh, and KallenXSuzaku FTW. ;) ... :P

Kovensky 2008-07-23 09:36

@Slice of Life: Well, I had no intention of keeping it closed, I just didn't bother to put the source before. The diff is there now. The hackish fontconfig patch too.

@Discerptor: NOOOOOO! KallenXLelouch is the win!

And anyone knows how to fix all those bunch of "undefined reference to `_imp__pthread_XXXX'" errors that are dooming libschroedinger? I can put configure.log here if it helps.

Dark Shikari 2008-07-23 13:21


Originally Posted by Kovensky (Post 1750275)
@Slice of Life: Well, I had no intention of keeping it closed, I just didn't bother to put the source before. The diff is there now. The hackish fontconfig patch too.

@Discerptor: NOOOOOO! KallenXLelouch is the win!

And anyone knows how to fix all those bunch of "undefined reference to `_imp__pthread_XXXX'" errors that are dooming libschroedinger? I can put configure.log here if it helps.

Sounds like a pthread linking issue.

You could just not include libschroedinger; it isn't as if anyone uses Dirac.

Kovensky 2008-07-23 13:24

That's what I'm doing right now, but I'd prefer to see that fixed. MPlayer is also linking with w32threads instead of pthreads, but libx264 links correctly with pthreads. So MPlayer is actually linking with both w32threads and pthreads since libx264 is a static lib. Oh well, what a mess. I prefer to see everything pthreaded.

I'm also getting a build failure with LIVE555, it is failing to find a bunch of "__w32_sharedptr" symbols refered by libstdc++.

WanderingKnight 2008-07-23 22:18

Working nicely on my dad's XP install. The only bug I can notice so far is some serious random block distortion when seeking... Don't know if you can reproduce this (gg's Code Geass encodes). It's not too big of a deal, though.

Craymel 2008-07-24 00:06

I also tried your build on my dads xp laptop witch plays 720p files perfectly, unlike my desktop......COUGH!!!bastard.COUGH!!! Any way I also tried ggs release of code geass r2 and had the same issues in seeking. I like how you made the mouse controls though. Can you configure mplayer to have those controls or do I have to make some sorta special build?

Kovensky 2008-07-24 07:57

You can configure the controls by editing the input.conf file inside mplayer's configuration dir. If there's no such file, you have to copy from the source tarball.

I think the corrupt blocks may be happening because of frame drops. I'll look into it when I'm back to windows.

Scab 2008-07-24 10:50

This seems to fail on a rather large number of files for me. For example, Live-eviL's Piano no Mori MKV makes it spit out "number of reference frames exceeds max" errors during which the displayed video freezes or gets corrupted. Similarly, it simply crashes upon trying to play their Daughter of Twenty Faces ep1 HD MKV. This is on a Vista 32-bit machine. Not sure if it's related to your build or just mplayer in general.

I like the idea, though. There needs to be a better standalone player around than that horrid VLC...

Kovensky 2008-07-24 11:04

Does the Daughter of Twenty Faces file you have use Vorbis audio? If that's so, I still didn't fix that problem ¬¬

And it's weird the numer of reference frames exceeding the max... Does it work on ffdshow?

And I managed to set up a cross compiling environment on my Kubuntu box. It is MUCH more confortable to build stuff here than on MSYS :)

I'm still building the essential stuff (liba52, libogg, libxvid), but I think that by later today or tomorrow there will be a fresh build.

EDIT: lol @ gpac. It is failing to build because it is generating a .so file... with win32 assembly :P
lol @ flac too because it is trying to use "nasm -f elf" to build win32 code.
FAAD: "error: ‘long long long’ is too long for GCC" :D

Scab 2008-07-24 11:07

Yes, it does. In fact I think you're right; every file with a vorbis track that I try to play crashes the player.

The files work with ffdshow.

Kovensky 2008-07-24 11:15

As a workaround, go to the folder where mplayer.exe is. Inside it, there must be a "mplayer" folder, and inside it there must be a "config" file. Open it with wordpad/write (notepad won't work) and add the following line to the end:

That should make mplayer use libvorbis to play, but last time I checked the libvorbis decoder is leaking memory. At least it doesn't crash.

As for the "maximum reference frames" error, it might be related to recent h.264 changes...
Do the following: Open the problematic file with wordpad/write, do a search for the term "x264" and copy all the human-readable text after it and paste here. There's either something wrong with x264 or the recent ffmpeg changes.

Scab 2008-07-24 13:34

afm=libvorbis did indeed fix the crashing.

I assume it's the x264 options you want, so from the Daughter of Twenty Faces file:


x264 - core 59 r819M 0414d78 - H.264/MPEG-4 AVC codec - Copyleft 2003-2008 - - options: cabac=1 ref=10 deblock=1:3:0 analyse=0x3:0x133 me=umh subme=7 me-prepass=0 brdo=1 mixed_ref=1 me_range=16 chroma_me=1 trellis=2 8x8dct=1 cqm=0 deadzone=21,11 chroma_qp_offset=0 threads=6 nr=0 decimate=1 mbaff=0 bframes=4 b_pyramid=1 b_adapt=1 b_bias=0 direct=3 wpredb=1 bime=1 keyint=250 keyint_min=25 scenecut=40(pre) rc=2pass bitrate=1305 ratetol=1.0 rceq='blurCplx^(1-qComp)' qcomp=1.00 qpmin=10 qpmax=51 qpstep=4 cplxblur=20.0 qblur=0.5 ip_ratio=1.40 pb_ratio=1.30 aq=2:1.00
This file, just like every other H.264 file I've tried, produces the "maximum reference frames" errors.

Kovensky 2008-07-24 13:42

I didn't notice you were a fansubber :P

And you can't play ANY of them? That's very weird... I can watch everything in here and everything that I have that is not in H.264 I convert to it to use less space... What is your CPU?

Can you get the first 5 MB of the file and send it to me?

At least I can see that the file is well encoded ^^

Scab 2008-07-24 13:53

The files play, the video just freezes (or on rare occasions gets corrupted) regularly while those error messages are being printed in the status window.

I'm on a Core 2 Quad Q6600.

This is the first file from a mkvmerge --split 5M --split-max-files 2 input.mkv -o sample.mkv:

Kovensky 2008-07-24 14:06

On my linux build, it played just fine; but it is a week old. I'll update it and try again...

And those errors happen on the first 30 seconds of the file or just in the middle?

As for the windows cross-build, I'm finishing the basic libs now. And GCC has some funny error messages like "error: ‘long long long’ is too long for GCC" :P

All times are GMT -5. The time now is 00:49.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2017, vBulletin Solutions Inc.