Tuesday, May 13, 2008

HandBrake 0.9.2 and yasm 0.7.1 precompiled deb binary for 64-bit linux

Update (5/15/09): The binaries on this page are woefully out of date, but I have working binaries built from the latest code available in my PPA repository. Directions for adding it to your package manager are available here.

Download: HandBrakeCLI-AMD64 0.9.2 (Thanks Alexander!)
Download: yasm-AMD64 0.7.1
yasm-i386_0.7.1 (it's in a tarball, but the deb is inside)

I just got finished doing some building for HandBrakeCLI. They used to provide a precompiled 64-bit binary on the official site, but they've stopped for some unknown reason, so I decided to provide a copy of my own.

This binary doesn't need to be installed. Just navigate to the directory that contains it and type
./HandBrakeCLI
followed by any desired options (for more information on using the command line with HandBrake, visit the HandBrake wiki).

One of the biggest pains in compiling HandBrake (other than the lack of a comprehensive list of dependencies) is the fact that, to get the most out of HandBrake's processor-specific optimizations, you have to have the yasm assembler installed. Unfortunately, the version in Ubuntu's repos only supports instructions up to SSE2.

To correct this, I had to download and compile a newer version of yasm (namely 0.7.0) before I built HandBrake. Once I got that going, HandBrake recognized my cpu's extensions and accelerated the encoding speed to approximately 3.5-4x faster than the stock, non-yasm compile.

This binary should recognize any extensions present on my cpu: an AMD X-2 4000+ cpu, which has all the usual goodies up to SSE3 (so you fancy-pants core2duo users are out of luck on the SSSE3). Edit: A fella named Alexander was kind enough to supply a build with additional support for SSSE3 and Cache_64. Thanks Alexander!

My binaries include the original source code, which I have not modified. If you have any problems with them, please leave a comment or drop me an email and I'll see if I can correct the problem.

8 comments:

  1. Thanks for the pre compiled yasm and your dependencies list. I have just build my AMD64 Handbrake for fancy Pants Core2Quad Q9450.

    I hope the Linux version will munch through my DVD collection like the Windows counterpart. :)

    ReplyDelete
  2. Awesome! I'm glad to hear it worked out. Does HandBrake recognize the SSSE3 and SSE4 extensions? If so and you're interested, I'd be happy to host your binary here. Just leave me another comment.

    ReplyDelete
  3. Thanks a lot! Compiling HandBrake works now. The older yasm in the repository didn't work. >_>

    ReplyDelete
  4. You are my savior! This is much better than trying to get the 32-bit version to work right.

    ReplyDelete
  5. when I run it it doesn't seem to use all or really any of my processors on my quad core my load average is .57. what am I doing wrong?

    ReplyDelete
  6. @anonymous

    That's certainly a major problem. That cpu utilization is so pathetically low that something else must be amiss. What kind of frames per second are you getting in HandBrake's readout in the terminal? If this is also excessively low (i.e., anything less than 50 fps in your case would be unreasonable on a first pass of a 2-pass encoding), I would recommend compiling HandBrake from source yourself (I have pretty thorough instructions in other posts here). Let me know if you continue having problems and I'll help you track down a solution.

    ReplyDelete
  7. Hello , would it be possible please to re-up those files ? i am trying to install handbrake 0.9.2 on Linux Computer as newer releases supposedly don't support encoding to Xvid anymore .. and i'll need that for the Mp4 Player. Thanks

    ReplyDelete
  8. I'm sorry, those files are long-gone. However, you can get a source snapshot from that time here:
    https://github.com/HandBrake/HandBrake/tree/d60380e61ec922484e9c5614592884dbf351970d

    ReplyDelete