Handbrake 0.9.4 unter 8.0 (amd64)

q000te

Well-Known Member
Hi!

Handbrake gibt es zwar in den Ports, doch nur die alte Version (0.9.3) und auch nur für 32bit.
Diese kann man mit der 32bit Kompatiblitätsschicht auch unter amd64 laufen lassen, nur ist dies relativ langsam, deshalb will ich die aktuelle Version unter amd64 bauen.

Meine bisherigen Erfahrungen damit sind eher schlecht. Ich hab mir mein schönes BSD-System schön mit wilden Softlinks und unnötigen Paketen verschmutzt... :mad:

Hier mein vorgehen:
Benötigte Pakete:
Code:
autoconf
automake
bash
binutils
freetype2
gcc45
gmake
gtar
jam
libtool
m4
pkg-config
python
wget
yasm

configure:
Code:
./configure --disable-gtk --gcc=/usr/local/bin/gcc45

Fehlerquellen:
build/contrib/a52dec/a52dec/libao/audio_out_oss.c:
Vorher:
Code:
#if defined(_OpenBSD_)
#include <soundcard.h>
#elif defined(_FreeBSD_)
#include <machine/soundcard.h>
Nachher:
Code:
#if defined(_OpenBSD_)
#include <soundcard.h>
#elif defined(_FreeBSD_)
#include <sys/soundcard.h>

build/contrib/ffmpeg/ffmpeg-r19067/:
libavdevice/bktr.c:
Vorher:
Code:
#define _BSD_SOURCE 1
#include "libavformat/avformat.h"
Nachher:
Code:
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;

#define _BSD_SOURCE 1
#include "libavformat/avformat.h"

libavdevice/oss_audio.c:
Vorher:
Code:
#include "config.h"
#include <stdlib.h>
#include <stdio.h>
Nachher:
Code:
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;

#include "config.h"
#include <stdlib.h>
#include <stdio.h>

build/contrib/x264/x264/:
configure:
Vorher:
Code:
#!/bin/bash
Nachher:
Code:
#!/usr/local/bin/bash

x264.h:
Vorher:
Code:
#ifndef X264_X264_H
#define X264_X264_H

#if !defined(_STDINT_H) && !defined(_STDINT_H) &&
Nachher: DASS LÄSST SICH DURCH EINEN AUFRUF VON version.sh ERLEDIGEN
Code:
#ifndef X264_X264_H
#define X264_X264_H

#define X264_VERSION 79

#if !defined(_STDINT_H) && !defined(_STDINT_H) &&

common/common.h:
Vorher:
Code:
#ifndef X264_COMMON_H
Nachher:
Code:
#define M_LOG2_E 0.693147180559945309417
#define log2f(x) (logf (x) / (float) M_LOG2_E)

#ifndef X264_COMMON_H

build/libhb/fifo.c:
Vorher:
Code:
#ifndef SYS_DARWIN
#include <malloc.h>
#endif
Nachher:
Code:
#include <stdlib.h>

aktueller Stand:
Die einzelnen Quelldateien lassen sich wunderbar kompilieren.
Nur macht der Linker Probleme:
- libiconv.a muss manuell dazugelinkt werden
- "undefined references" zu "oggpack_read" / "oggpack_write" obwohl die entsprechenden bibliotheken gebaut wurden und dazugelinkt werden??

Problem dabei ist, dass ich nicht mehr weiß was ich wo/wie per softlink verdrahtet habe und als Fehlerquelle in betracht kommt.. :confused:

Falls jemand eine funktionierende, aktuelle Handbrake version hat immer her damit!

Falls jemand von euch sich das ganze mal antuen möchte hier ein Zipfile mit den angepassten Quelldateien.

Vielen Dank für eure Aufmerksamkeit!
 
Mehr habe ich bisher auch nicht gebaut, da ich Handbrake skriptgesteuert verwende.
(Wobei ich die dabei verwendeten Optionen seit ca. einem dreiviertel Jahr aktualisieren will...)
 
Mehr habe ich bisher auch nicht gebaut, da ich Handbrake skriptgesteuert verwende.

Hihi, das kenne ich :) Nur leider bin ich grade wegen des unglaublich verschiedenen Video-Materials, was mir so unterkommt, kein Fan von statischen Scripts. Muss immer erst sichten und dann entscheiden...

Die Handbrake GUI nimmt einem dabei halt sehr viel ab. Bin z.B. ein Fan vom Preview-Button, sagt mir über die automatisierten kurzen Test-Encodings sofort:
- sitzt das Cropping, passt die AR
- brauch ich Denoiser und/oder andere Filter
- passt bei kranken interlaced Videos das Deinterlacing oder brauche ich nur einen Decomber
- hab ich die richtigen Tonspuren erwischt und passt die Lautstärke
- usw. und so fort....

Habe bis jetzt einfach noch nix gefunden, was einem die Arbeit so erleichtert wie die Handbrake-GUI, ohne einem gleich die exakte Kontrolle zu entziehen (wie bei ogmrip) oder es gleich unnötig komplex zu machen (wie bei avidemux2).

Edit:
Lange Rede, kurzer Sinn: Das ganze vollständig mit GUI als 64bit-port zu haben, wär so was von großartig.... Wenn wer einen Tip für eine vergleichbare Encoder-Oberfläche hat, dann her damit :)
 
Zuletzt bearbeitet:
reakktor: frage doch mal auf ports@ nach, ob nicht jemand einen amd64 port hat oder helfen will, einen zu erstellen.
 
Japp, sehr guter Vorschlag - nur, damn, habe so wenig Erfahrung mit so großen Mailinglisten und fürchte gleich eine Spam-Flut.

Gestehe, ich habe mich mit dem Thema Mailinglisten noch nicht recht beschäftigt.

Übernehme das gerne, wenn ich nen kleinen Tip kriege, wie ich den Einsteig in Mailinglisten ohne Schmerzen schaffe...
 
Ich hab schon bei ports@ nachgefragt.
Es wäre besser wenn die Änderungen direkt bei HandBrake eingehen.

Das probiere ich auch, aber das dauert sicher noch.
 
Zurück
Oben