Tach Team,
Nach ewigen Versuchen habe ich hier nun eine funtionierende Variante des Windows Codecs CoreAVC laufen, der eine alternative zur ffmpeg decodierung von h264 darstellt.
Gleich vorneweg, ruckelfrei ist das Ganze auch nicht, aber deutlich besser als der derzeitige ffmpg Stand.
Der Reihe nach, folgendes System soll das Ziel sein :
- amd 64Bit
- vdr (hier 1.5.14 ) mit S2 h264 Fähigkeit
- Ausgabe über vdr-xine in Xine
- Videodekodierung via xine-lib 1.2 , dshowserver und CoreAVC 1.8
Vorteile :
- skalliert über mehrere CPUs ( macht ffmpeg derzeit nicht )
- bessere Bildqualität, ruckelfreier als ffmpeg
Nachteile :
- externer Direct Show Server, Windows Closed Source Filter
- Kostenpflichtiger Codec
Ich betrachte das ganze als zwar funtionierend, aber nicht der Weißheit letzter Schluß.
Die schritte im Einzelnen ( hier nur die Coreavc und dshowserver relevanten Dinge )
1. CoreAVC besorgen, z.b: hier :
http://www.coreavc.com/
2. installation mittels wine
3. Nach Installation kommt die Datei "YOUR_HOME/.wine/drive_c/Programme/CoreCodec/CoreAVC Professional Edition/CoreAVCDecoder.ax" nach "/usr/lib/win32/CoreAVCDecoder.ax"
4. dshowserver als vorkompiliertes binary von hier herunterladen :
http://coreavc-for-linux.googl…r-ia32-r63-gentoo.tar.bz2
5. enthaltene binarys " dshowserver" + "registercodec" entpacken nach /usr/bin
6. registrieren des Codecs mit :
mkdir YOUR_HOME/.mplayer/
export REGISTRY=$HOME/.mplayer/registry32
registercodec -r $REGISTRY -k "HKLM\\Software\\CoreCodec\\CoreAVC Pro\\Serial" -v "55555-55555-CORE-55555-55555"
Statt der vielen 5en kommt der 15$ teure Key rein.
7. testen auf funtionierenden dshowserver mit :
dshowserver -c CoreAVCDecoder.ax -s 1280x720 -g 09571a4b-f1fe-4c60-9760de6d310c7c31 -b 12 -f 0x34363248 -o 0x30323449
sollte bringen :
No id specified, assuming test mode
Opening device
Called unk_IsDebuggerPresent
len: 992
ProductVersion: 1.8.0
Decoder supports the following YUV formats: YUY2 UYVY YV12 I420
Decoder is capable of YUV output (flags 0x2b)
Setting fmt
Starting
Initialization is complete
8. dshowserver decoder plugin for xine-lib von Petri Hintukainen herunterladen und übersetzen, setzt natürlich eine funktionierende xine-lib1.2 vorraus
http://phivdr.dyndns.org/vdr/x…ne_2008-08-04-phi.tar.bz2
alternativ : http://rapidshare.de/files/405…08-08-04-phi.tar.bz2.html
Die Übersetzung kann außerhalb des xine-lib tree's erfolgen
9. kopieren und ausführbar machen der eben erstellten xineplug_decode_dshowserver.so
xineplug_decode_dshowserver.so --> /usr/local/lib/xine/plugins/2.0/xineplug_decode_dshowserver.so
10. Aufruf von xine ( via vdr-xine als Ausgabe vom vdr )
nice --10 /usr/bin/xine -V xv --post vdr_video --post vdr_audio --post upmix_mono --post vdr --verbose=2 vdr:/tmp/vdr-xine/stream#demux:mpeg_pes
gibt folgende Terminal Ausgabe :
...
load_plugins: plugin dshowserver will be used for video streamtype 4d.
audio_oss_out: Audiodatenrate: 48000 gefordert, 48000 genutzt von Gerät
audio_oss_out: 2 channels output
output sample rate 48000
audio jump, diff=0
size_from_nal: 1920 x 1088
size_from_nal: 1920 x 1088
size_from_nal: 1920 x 1088
size_from_nal: 1920 x 1088
shm:/dshow_shm.43005950
sem1:/dshow_sem1.43005950
sem2:/dshow_sem2.43005950
Making BIH
Opening device
Called unk_IsDebuggerPresent
len: 992
ProductVersion: 1.8.0
Decoder supports the following YUV formats: YUY2 UYVY YV12 I420
Decoder is capable of YUV output (flags 0x2b)
Setting fmt
Starting
Initialization is complete
Found DirectShow filterset_speed 1000000
vdr_video: osd: (0, 0)-(1920, 1088)@1,76471
vdr_video: osd: (0, 0)-(1920, 1088)@1,76471
....
Alles anzeigen
Quellen :
http://code.google.com/p/coreavc-for-linux/
http://phivdr.dyndns.org/vdr/xine-lib/dshowserver/
Wie siehts aus ?
[Blockierte Grafik: http://img100.imageshack.us/img100/6394/cpuloadpremierehdcx6.th.jpg]
[Blockierte Grafik: http://img201.imageshack.us/img201/7708/viewdiscoveryhdix8.th.jpg]
[Blockierte Grafik: http://img201.imageshack.us/img201/6915/viewdiscoveryhd2ny6.th.jpg]
ich sach ma, Compiler ON
Grüße vom Alex