PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Freier H.264 Codec gesucht


Lostech
24.01.2007, 11:19
Für Tests müßte ich mir ein paar Sachen in H.264 enkodieren. Weis einer, was es denn sonst noch so an frei verfügbaren Codecs außer x264 (http://www.videolan.org/developers/x264.html) gibt:?:

Derrick
24.01.2007, 12:00
k.a. aber bei deiner suche solltest du auch auf profile/level achten. Nicht alles, was sich H.264/AVC schimpft, ist HDTV. Leider werden die begriffe meist synonym verwendet, was zu missverständnissen führt ;)

Hier ein stück der analyse vom H.264 GOD-channel auf 16E, 11293H. Der videostream hat ganze 0,8mbps !


Video-PID = 2014
Parameter set position in PES packet = 6
Parameter set position in file = 141406
------------------------------------------------------------

profile_idc = 77 -----> main profile
constraint_set0_flag = 0
constraint_set1_flag = 1
constraint_set2_flag = 0
constraint_set3_flag = 0
level_idc = 30 -----> level 3.0

seq_parameter_set_id = 0
log2_max_frame_num_minus4 = 4
pic_order_cnt_type = 0
log2_max_pic_order_cnt_lsb_minus4 = 4

num_ref_frames = 2
gaps_in_frame_num_value_allowed_flag = 1

pic_width_in_mbs_minus1 = 33 -----> HRes = 544
pic_height_in_map_units_minus1 = 17 -----> VRes = 576
frame_mbs_only_flag = 0 -----> interlaced
mb_adaptive_frame_field_flag = 0

direct_8x8_interference_flag = 1
frame_cropping_flag = 0

vui_parameters_present_flag = 1
aspect_ratio_info_present_flag = 1
aspect_ratio_idc = 255
sar_width = 270
sar_height = 187 -----> aspect ratio 4:3

Lostech
24.01.2007, 12:45
HDTV muß nicht unbedingt sein. Es würde schon reichen, wenn ich den normale MPEG2 MP@ML Dateien umsetzen könnte.
Ich hab vor lediglich normale DVB Aufnahmen in H264 zu konvertieren und dann in einen TS reinzupacken. VLC (setzt auf x264) schmiert mir aber bei der Umwandlung ab und per x264.exe kriege ich nix raus, was der VLC wiedergeben könnte.

jmittelst
24.01.2007, 17:59
AutoAC, AutoMKV oder MeGui mal getestet? > Alle unter Tools hier: http://videohelp.com

Muß es unbedingt Avi sein? Matroska, OggMedia und MP4 sind eigentlich eher passende Container.

Wenn Du Nero 6 oder neuer hast, kannst Du auch NeroDigitalAVC verwenden.

cu
Jens

akapuma
24.01.2007, 18:43
und per x264.exe kriege ich nix raus, was der VLC wiedergeben könnte.Dann machst Du was falsch, sollte einwandfrei klappen.

Muß es unbedingt Avi sein? Matroska, OggMedia und MP4 sind eigentlich eher passende Container.Genau, AVI ist Murks, weil nur x264-Streams im vfw-compatiblity-mode reinpassen. Stand bei x264 sind aber native Streams. Ich würde deshalb auch Matroska empfehlen.

Da andere freie h264-Encoder rar sein dürften, würde ich es nochmal mit x264 versuchen. Eine korrekte Commandline sieht z.B. so aus:

c:\PROGRA~1\x264\x264.exe --crf 25 -I 300 -i 120 -r 6 --mixed-refs --no-fast-pskip -b 4 --b-pyramid --b-rdo --bime -w -f 1,1 -m 7 -t 1 -A all -8 --qpstep 8 --aq-strength 0.5 --direct auto --b-bias 30 --thread-input --progress --no-psnr --no-ssim -o "hoellenbrut_movie.mkv" HOELLE~1.AVS
Gruß

akapuma

jmittelst
24.01.2007, 19:56
Ups... nicht aufgepasst, ging ja um TS...

Den Mux zu einem TS-Container sollte Yamb gut hinbekommen, findet man auch bei Videohelp.

Für Details und Fragen für sowas ist übrigends das deutsche Doom9-Forum vermutlich der beste Anlaufpunkt : http://forum.gleitz.info

cu
Jens

Altaria
24.01.2007, 20:07
ehrlich gesagt würde ich dir abraten ts als container zu verwenden
x264 läuft nur unter mp4 und matroska wirklich perfekt,
es gibt noch mehr player die x264 abspielen, übrigens in welches format wilsch die ac3 files umrippen, ich würd die da HE AAC empfehlen, ab und zu gibts zwar probleme mit Kanalsprüngen, aber meistens gehts problemlos, ca. 1h 50 min film lassen sich ohne sichtbaren verluste auf eine cd brennen, (HQ - Insane profile)
zB "media player classic", und der beste player meiner meinung nach, ist der "Kmplayer" leider is schwer einen guten download zu finden, aber da der freeware is, gibts den wahrscheinlich in einem torrent oder emule

Lostech
24.01.2007, 20:39
Es muß schon H264 in TS sein, da die Streaming Anwendung laut Spec nur das und MPEG2 TS beherrscht.
Im Moment hab ich auf einem WinXP Rechner mal MeGUI seit heute nachmittag laufen, aber das dauert noch ein Weilchen, bis ich seh, ob das hingehauen hat :(
Gleichzeitig habe ich mir unter Linux eine VLC Version compiliert, die sich nicht verabschiedet, wie die Win Version. Da lasse ich im Moment über den Streaming Assistent auch mal einen h264/x264 Stream erstellen.
Morgen früh werd ich mal nachsehen, was die beiden Rechner so über Nacht geschafft haben :D

Lostech
25.01.2007, 15:19
Kann man eigentlich mit PX einen H264 RAW Stream bzw. einen MP4 Container (Video+Audio) in H264 TS umwandeln oder macht PX nur MPEG2 TS:?:

jmittelst
25.01.2007, 15:54
PX macht (noch) nur Mpeg2.
Yamb ist das Schweizer Messer für Mpeg4. Leider nicht auf DVB (Fehlerkorrektur, etc.) abgestimmt, aber heute morgen konnte ich einen TS-Container erzeugen.

cu
Jens

Lostech
25.01.2007, 16:40
Yamb. Hmm. Muß ich mir mal anschauen, denn das H264 TS, was ich mit VLC erzeugt hab, klappt nicht so besonders. Jetzt versuche ichs mal mit richtigen MP4 Container.

Lostech
26.01.2007, 11:47
Yamb ist das Schweizer Messer für Mpeg4. Leider nicht auf DVB (Fehlerkorrektur, etc.) abgestimmt, aber heute morgen konnte ich einen TS-Container erzeugen.
Wie bekommst du da einen TS raus? Bei mir macht Yamb nur einen MP4 Container.

Derrick
26.01.2007, 12:33
Was soll das denn werden, wenn es fertig ist? ;)

Einen TS kann man natürlich aus allem machen. Egal ob mpeg, IP oder andere, beliebige container, lassen sich in ts_packets zum transport (deshalb das "T" ;) ) verkapseln.

Nimmt man H.264 über DVB, jedenfalls so wie es anscheinend von allen gemacht wird, sind die einzelnen ES nach wie vor wie bei mpeg2 als einzelne PID_streams gemuxt. Kann man natürlich auch anders machen, indem ein container mit video und audio in transportpakete mit nur einem pid verpackt werden.

Lostech
26.01.2007, 12:43
Was soll das denn werden, wenn es fertig ist? ;)
Ich hab hier was, das Streams etc. von einem Linux Server mit VLC als Streamer empfängt. Unterstützt wird aber nur MPEG2 (kein Problem :D ) und H264 (Neuland für mich - also erstmal Problem :( ). Um das Teil testen zu können, muß ich mir jetzt was H264 mäßiges im TS zusammenstellen.

Einen TS kann man natürlich aus allem machen. Egal ob mpeg, IP oder andere, beliebige container, lassen sich in ts_packets zum transport (deshalb das "T" ;) ) verkapseln. Das das nur ein Container ist, war mir schon klar Das Problem ist aber, das ich keine Applikation habe, die irgendwas x-beliebiges wie z.B. H264 bzw. H264 RAW und eine AAC Audiospur in einen TS verpackt.

jmittelst
26.01.2007, 13:20
Wie bekommst du da einen TS raus? Bei mir macht Yamb nur einen MP4 Container.

Ich bin da wohl dem freudschen Windows-Dummy-Fehler aufgesessen...
Hab Yamb gesagt, er soll die Datei Test.ts muxen ... hat er gemacht, scheint aber nur ein MP4-Container mit falscher Dateiendung gewesen zu sein...

Frag mal im Gleiz-Forum (Link oben) nach, da sollte sich bestimmt einer auskennen. DVB-S2-Aufnahmen sind da nix unbekanntes. Hab aber auch noch nix direktes gefunden, was TS-Files erzeugt. Vermutlich, weil mit dem MP4-Container normalerweise das Ideal da ist. Und mit Matroska eine gute Alternative.

Hast Du denn mal versucht, ob das Ding MP4-Container nicht genauso gut streamen kann?

cu
Jens

Lostech
26.01.2007, 13:52
Es wird nur TS unterstützt.

Derrick
26.01.2007, 15:51
Ich habe mal ein kleines experiment gemacht. Auf einem serverrechner lief der DVBViewer. Der streamte einen TS über http-streaming zum VLC. Der vlc wandelte mit h.264 codec on-the-fly und streamte das wieder als TS zu einem anderen rechner (über wlan ;) ). Auf diesem clientrechner hat ein anderer vlc den TS dann aufgenommen. Quali ist schlecht und es dauert beim abspielen mit dem vlc bis das bild da ist (keyframes??) aber es ist h.264 und alles in echtzeit (natürlich kein high profile oder level ;) ).

Hier der schnipsel:

Lostech
26.01.2007, 15:58
Danke. :) Ich weis zwar nicht, ob ich heute dazu komme, das noch zu probieren, aber ich melde mich spätestens Montag wieder.

Derrick
26.01.2007, 17:27
Ich hab das noch mal gemacht. Jetzt aber ohne wlan und 2. streaming, sondern nur den stream on-the-fly gewandelt und lokal gespeichert. Auch den ton habe ich eingedampft. Der war ja vorher grösser als das bild :D

So sieht das schon besser aus:

Lostech
29.01.2007, 09:15
Danke. Der Stream funktioniert im VLC einwandfrei, wenn ich das aber über den VLC an mein Testsubjekt streame zeigts das nicht an. Anscheinend kanns entgegen der Spec dann doch nur MPEG2 Streaming. :(

BTW: Gibts denn wirklich keinen ISO 13818-1 TS Multiplexer (außer vielleicht VLC), der nicht stur MPEG2 als Input erwartet?

Derrick
29.01.2007, 17:06
Dafür machst du soviel wind? ;) ich dachte, es ginge dir um die transcodierung. Einen TS mit H.264 hättest du einfacher haben können. Ob HD oder SD, kann man alles direkt mit dvb-s/s2 aufnehmen :)

Lostech
29.01.2007, 19:49
Dafür machst du soviel wind? ;)
Wenn nicht ich, wer dann :D

ich dachte, es ginge dir um die transcodierung. Die Transkodierung klappt mittlerweile ganz gut mit MeGUI und unter Linux auch mit dem VLC. Das paßt schon so jetzt.

Einen TS mit H.264 hättest du einfacher haben können. Ob HD oder SD, kann man alles direkt mit dvb-s/s2 aufnehmen Dafür hab ich im Moment das Equipment nicht :|

Das Problem konnte ich trotzdem lösen. Diese dämliche STB benötigt nach dem Start des Streamings mindestens 15 Sekunden bevor die Video Wiedergabe überhaupt anfängt, d.h. mit kurzen H264 TS Schnipsel kam die Box einfach nicht in die Pötte. Macht man wesentlich längere Streams, dann haut es irgendwann auch hin.

Jetzt muß ich mich nur noch drum kümmern, warum auf meinem Win XP System der gezogene VLC immer bei der Transkodierung abschmiert, während auf Linux der selbst-kompilierte VLC bei gleichen Eingangsmaterial problemlos durchläuft. :?