[gelöst]Probleme mit .avi Video (fraps)

Nachricht
Autor
Benutzeravatar
McFlow
Beiträge: 12
Registriert: 05. Dez 2006 15:06

[gelöst]Probleme mit .avi Video (fraps)

#1 Beitrag von McFlow » 05. Dez 2006 15:16

Hallo!
Ich benutze nun schon seit einiger Zeit Linux (Ubuntu Dapper Drake).
Nun wollte ich mich ans Video Editing machen....
Dafür habe ich mit Fraps Szenen aus einem Spiel aufgenommen, da ich diese bearbeiten, zusammenschneiden möchte.
Allerdings sind diese Filme unter Windows aufgenommen.... hab nicht genug Speicher frei um die Bearbeitung unter Win durchzuführen ;) /bzw. keine Lust dazu :p .
Nur diese .avi Filme lassen sich nicht mit "Totem" wiedergeben... ich habe zwar Sound, aber kein Bild!
Nach meinen Erfahrungen unter Windows schließe ich auf ein Codec Problem, was ich durch folgende Aktion als bestätigt ansehe:

Code: Alles auswählen

mcflow@McFlow:~$ ffmpeg -sameq -i /home/mcflow/Desktop/g3.avi new.mpeg
[fraps @ 0xb7e8f164]This file is encoded with Fraps version 2. This codec can only decode version 0 and 1.

(diese Zeile wiederholt sich etliche male)
ich benutze wie gesagt den "Totem video player" und die version des installierten codecs ist laut "synaptic" 3:20060612-0.1

in cinelerra habe ich übrigens auch nur Ton :(

hat jemand ne Idee was ich tun kann? bei google hab ich kaum was gefunden.... und schlagwörter nach denen ich suchen könnte fehlen mir auch....
ich hoffe ihr könnt mir Helfen....

mfg,
Flo
Zuletzt geändert von McFlow am 06. Dez 2006 16:50, insgesamt 1-mal geändert.

Benutzeravatar
Lateralus
prolinux-forum-admin
Beiträge: 1238
Registriert: 05. Mai 2004 7:35

#2 Beitrag von Lateralus » 05. Dez 2006 19:24

Versuche es mit mplayer bzw. mencoder. Die Option -vo regelt die Videoausgabe. Ließ die entsprechenden Abschnitte in der manpage. mplayer konnte bei mir bis jetzt noch alles abspielen.

Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

#3 Beitrag von Janka » 05. Dez 2006 20:03

mplayer/mencoder können fraps *dekodieren*, wenn man den passenden MS-Windows-Codec benutzt. Ist seit MPlayer 1.0pre8 dabei.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Benutzeravatar
McFlow
Beiträge: 12
Registriert: 05. Dez 2006 15:06

#4 Beitrag von McFlow » 05. Dez 2006 21:20

jo thx :) hat geklappt mit dem encodieren.... allerdings ist der Qualitätsverlust doch deutlich sichtbar.....
gibts ne Möglichkeit das ganze ohne Qualitätesverlust zu machen? wär echt cool wenn mir das jemand sagen könnte!

aber dickes Dankeschön schonmal :)

Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

#5 Beitrag von Janka » 05. Dez 2006 21:59

Qualitätsverlust gibt es beim Umkodieren von Videos immer. Insbesondere, wenn das Ausgangsformat ein verlustloses ist wie Fraps. Welches Zielformat benutzt du denn? Es gibt es für jedes Format etliche Optionen, die die Qualität beeinflussen.

$ man mencoder

Nicht von der Menge erschlagen lassen! Videokodierung ist nunmal eine Wissenschaft, und das liegt es in der Natur der Sache, dass man erstmal rumprokeln muss. Die besten Einstellungen zu finden ist selbst mit gut eingrichtetem Werkzeug (z.B. VirtualDub war da mal berühmt für) nicht trivial.

Das Beste ist es, das Farbformat der Einzelbilder nicht zu ändern, dann gibt es die geringsten Verluste, weil die Keyframes nicht angefasst werden müssen.

Laut http://wiki.multimedia.cx/index.php?title=Fraps benutzt Fraps V2 YUV420 als Farbkodierung. Das Zielformat sollte das also auch tun.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Benutzeravatar
McFlow
Beiträge: 12
Registriert: 05. Dez 2006 15:06

#6 Beitrag von McFlow » 06. Dez 2006 9:25

ich habe es wie folgt gemacht:

Code: Alles auswählen

mencoder /home/mcflow/Desktop/g3.avi -ovc xvid -xvidencopts bitrate=900 -oac copy -o /home/mcflow/new.avi
ich weiß eben nur nicht was ich bei bitrate setzen muss.... naja hab ja Zeit, werde mit allem mal ein wenig rumspielen.....
aber dafür, dass die größe des Videos von 520mb auf 32 mb gesunken ist, ist der Qualitätsverlust sehr gering :)


hab mir die man page grad mal angeschaut.... bzw. bin noch dabei...

unter windows gab es ja die Möglichkeit, mit speziellen Programmen ein Video als "uncompressed .AVI" zu encodieren....

ist das mit dem mencoder auch möglich? weil ich will das video ja nicht komprimieren... die 500MB Größe kann es ruhig behalten ;)

naja ich "kämpf" mich erst mal weiter durch die manpage ;)

Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

#7 Beitrag von Janka » 06. Dez 2006 11:30

McFlow hat geschrieben:ich habe es wie folgt gemacht:

Code: Alles auswählen

mencoder /home/mcflow/Desktop/g3.avi -ovc xvid -xvidencopts bitrate=900 -oac copy -o /home/mcflow/new.avi
ich weiß eben nur nicht was ich bei bitrate setzen muss.... naja hab ja Zeit, werde mit allem mal ein wenig rumspielen.....
aber dafür, dass die größe des Videos von 520mb auf 32 mb gesunken ist, ist der Qualitätsverlust sehr gering :)


hab mir die man page grad mal angeschaut.... bzw. bin noch dabei...
Es gibt noch mehr Doku:

http://www.mplayerhq.hu/DOCS/HTML-singl ... -feat-xvid

unter windows gab es ja die Möglichkeit, mit speziellen Programmen ein Video als "uncompressed .AVI" zu encodieren....
ist das mit dem mencoder auch möglich? weil ich will das video ja nicht komprimieren... die 500MB Größe kann es ruhig behalten ;)
Ähm. Dann kannst du gleich bei Fraps bleiben. Das ist ja "near uncompressed" AVI.

libavcodec bietet für diesen zweck huffyuv, ljpeg und ffv1 an. Beschreibung hier:
http://www.mplayerhq.hu/DOCS/HTML-singl ... libavcodec

huffyuv ähnelt Fraps. Wenn es dir also nur darauf ankommt, eine breitere Zuschauerbasis für das Video zu bekommen ist das sicher auch geeignet.


Ein Alternativformat, das wirklich überall funzen dürfte, und ohne große Verluste arbeitet ist MJPEG, da werden nur die Einzelbilder nach dem JPEG-Verfahren komprimiert. Das heißt, es gibt keine Interframes, sondern nur Keyframes. Für schnelle Bewegungen wie bei Spielen ist das gut geeignet. Das kann man auch mit libavcodec kodieren.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Benutzeravatar
Scory
Beiträge: 188
Registriert: 16. Apr 2004 12:36

#8 Beitrag von Scory » 06. Dez 2006 13:37

Die Wahl der Bitrate ist abhängig von der Auflösung. Für ein Video 320x240 (nur als Beispiel) wird 900 kb/s gut sein, aber ich denke mal, Du hast PAL Format, sprich 720x576.

Da solltest Du für wirklich gute Bilder mind. 1500 wählen, ggf. auch 2000. Das Format xvid finde ich gut gewählt, das läuft sogar auf vielen DVD-Playern wenn man es als .avi auf CD oder DVD brennt. Ist ein sehr MPEG4 "Advanced Simple Profile" Format (mind. so gut wie DIVX) und ist auch ziemlich verbreitet.

Benutzeravatar
McFlow
Beiträge: 12
Registriert: 05. Dez 2006 15:06

#9 Beitrag von McFlow » 06. Dez 2006 16:31

Janka hat geschrieben: Ähm. Dann kannst du gleich bei Fraps bleiben. Das ist ja "near uncompressed" AVI.
ne eben nicht... da ich ja die Szenen von Gothic3 zusammen schneiden will... mit cinelerra hab ich bei dem Video ja nur Ton...

lHast mir aber schonmal sehr geholfen! ich guck mir den ganzen Kram mal in Ruhe an :)


vielen lieben Dank... das mit dem mjpeg klappt genau so wie ich es haben wollte :)

@scory:

die Auflösung des Videos ist 1024*768

xvid wähle ich allein schon deshalb weil ich das Format irgendwie "liebe"... ich weiß net... das sagt mir einfach zu :D

Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

#10 Beitrag von Janka » 07. Dez 2006 10:23

Ach stimmt ja, das war ja noch was. Tut mir leid, manchmal vergesse ich einfach den Aufhänger der Frage.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

haggis
Beiträge: 5
Registriert: 25. Sep 2008 23:08

#11 Beitrag von haggis » 26. Sep 2008 0:13

hallo!
das topic hat mir schon sehr viel geholfen, danke! allerdings habe ich trotzdem ein problem:

die originaldateien von fraps kann ich zb mit mplayer oder xine wiedergeben...habe dabei aber nur sound und kein bild.

ich wandle das file um mit
mencoder AgeOfConan\ 2008-09-25\ 00-55-31-83.avi -ovc xvid -xvidencopts bitrate=1500:vhq=2:bvhq=1:chroma_opt:quant_type=mpeg -oac copy -o new.avi

das bildergebnis ist ok, aber ton ist immer noch keiner dabei. ansich ist das auch nicht schlimm, da ich sowieso musik einfügen möchte (dennoch wäre es unter umständen wünschenswert). wenn ich diese datei nun in kino importiere, erhalte ich im terminal folgende fehlermeldung:

[dvvideo @ 0xb7e206e8]Can't process DV frame #12. Insufficient audio data or severe sync problem.

zu beginn der encodierung durch kino steht da auch, dass die audiospur nur 0,5sek lang sei:
Audio stream: 1536.000 kbit/s (192000 B/s) size: 96000 bytes 0.500 secs


dadurch hat dann das importiere file auch nur eine gesamtspielzeit von 0,48sek.


ich habe im kino-diskussionsboard zwar einen workaround gefunden, der einfach eine leere sounddatei in die avi einfügt, aber das ist natürlich nicht akzeptabel da ich so für jede datei eine leere sounddatei erzeugen muss, die genauso lang wie das video ist. funktiniert aber rein prinzipiell :)

also wie könnte ich die originaldatei gleich so umwandeln, dass der originalsound dabei ist? unter windows wird er ganz normal wiedergegeben.

falls das was zur sache tut: betriebssystem ist ubuntu 8.04 hardy heron


viele grüße,
haggis


edit:
beim genaueren betrachten ist mir aufgefallen, dass es beim encodieren mit mencoder zu einem fehler wegen fehlender frapsvid.dll kam. also habe ich noch w32codecs installiert.

starte ich nun mencoder, kommt folgende ausgabe:
mencoder AgeOfConan\ 2008-09-25\ 00-55-31-83.avi -ovc xvid -xvidencopts bitrate=1500:vhq=2:bvhq=1:chroma_opt:quant_type=mjpeg -oac copy -o new5.avi
MEncoder 2:1.0~rc2-0ubuntu13 (C) 2000-2007 MPlayer Team
CPU: Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz (Family: 6, Model: 15, Stepping: 11)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
success: format: 0 data: 0x0 - 0x23454eb8
AVI file format detected.
[aviheader] Video stream found, -vid 0
[aviheader] Audio stream found, -aid 1
Detected NON-INTERLEAVED AVI file format.
AVI Ogg : Initial audio header is too small !!!!!
VIDEO: [FPS1] 800x600 24bpp 25.000 fps 61503.5 kbps (7507.8 kbyte/s)
[V] filefmt:3 fourcc:0x31535046 size:800x600 fps:25.00 ftime:=0.0400
xvid: using library version 1.1.2 (build xvid-1.1.2)
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
==========================================================================
Opening video decoder: [vfw] Win32/VfW video codecs
Loading codec DLL: 'frapsvid.dll'
Called unk__strnicmp
Loaded DLL driver frapsvid.dll at 10000000
VDec: vo config request - 800 x 600 (preferred colorspace: Packed YUY2)
[PP] Using codec's postprocessing, max q = 9.
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
VDec: using BGRA as output csp (no 0)
Opening video filter: [flip]
Movie-Aspect is undefined - no prescaling applied.
SwScaler: reducing / aligning filtersize 1 -> 4
SwScaler: reducing / aligning filtersize 1 -> 4
SwScaler: reducing / aligning filtersize 1 -> 1
SwScaler: reducing / aligning filtersize 9 -> 8
[swscaler @ 0x880f730]SwScaler: BICUBIC scaler, from rgb32 to yuv420p using MMX2
[swscaler @ 0x880f730]SwScaler: using 4-tap MMX scaler for horizontal luminance scaling
[swscaler @ 0x880f730]SwScaler: using 4-tap MMX scaler for horizontal chrominance scaling
[swscaler @ 0x880f730]SwScaler: using 1-tap MMX "scaler" for vertical scaling (YV12 like)
[swscaler @ 0x880f730]SwScaler: 800x600 -> 800x600
Opening video filter: [expand]
Expand: -1 x -1, -1 ; -1, osd: 0, aspect: 0.000000, round: 1
videocodec: XviD (800x600 fourcc=44495658 [XVID])
xvid: par=0/0 (vga11), displayed=800x600, sampled=800x600
xvid: CBR Rate Control -- bitrate=1500kbit/s
Selected video codec: [fraps] vfm: vfw (FRAPS: Realtime Video Capture)
==========================================================================
audiocodec: framecopy (format=fffe chans=6 rate=48000 bits=16 B/s=576000 sample-12)
Writing header...
ODML: vprp aspect is 4:3.
Setting audio delay to 0.040s.
Writing header...
ODML: vprp aspect is 4:3.
Setting audio delay to 0.040s.
Pos: 14.6s 368f (20%) 22.91fps Trem: 1min 14mb A-V:0.040 [1462:0]
danke fürs lesen :P


edit2:
ich gehe jetzt mal stark davon aus, dass es am audio-codec liegt.
verwende ich nämlich statt "-oac copy" "-oac faac", dann nimmt er schonmal 0.880sek ton auf. auch meldet avidemux, dass kein passender audio-dekodierer gefunden wurde.

edit3:
ffmpeg -i video.avi hat mir
Stream #0.1: Audio: pcm_s16le, 48000 Hz, 5:1, 4608 kb/s
ausgegeben.

also habe ich mal die option " -oac lavc -lavcopts acodec=pcm_s16le" probiert.
ergebnis:
Audio stream: 224.000 kbit/s (27999 B/s) size: 576000 bytes 20.571 secs
immherhin schonmal 20sek! das video ist aber 78sek lang ;)
zudem bekomme ich jede menge "1 duplicate frame(s)!" meldungen und der ton ist total abgehackt.

wahrscheinlich ists nur ne kleine änderung und ich sehs nicht, weil es das erste mal ist, dass ich ein video nicht mit einem one-click-tool encodiere :/

edit4:
ok..ich habe jetzt eine etwas umständliche lösung gefunden:

1. Audiospur extrahieren
ffmpeg -i video.avi -vn sound.wav

2. Video encodieren und mit der wav muxen:
mencoder video.avi -ovc xvid -xvidencopts bitrate=1500:vhq=2:bvhq=1:chroma_opt:quant_type=mpeg -channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384 -audiofile sound.wav -o new.avi

außerdem habe ich keine möglichkeit gefunden den 5.1 sound in stereo umzuwandeln. ffmpeg sagt bei "-ac 2" dass ein resampeln mit mehr als 2 channels nicht möglich ist. schade :/

Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

#12 Beitrag von Janka » 26. Sep 2008 8:55

Erst mal sehr schön, dass du den Lösungsweg hier dokumentiert hast. Danke!

Um die Audiospuren umzuformen solltest du "sox" verwenden, das ist bei Audio das Mittel der Wahl für alle möglichen Verknautschungen.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

haggis
Beiträge: 5
Registriert: 25. Sep 2008 23:08

#13 Beitrag von haggis » 26. Sep 2008 13:55

hi janka!
sox kannte ich noch nicht...sieht auch sehr umfangreich aus. aber trotzdem bietet es leider keine möglichkeit 5.1 sound auf stereo downzumixen.

beispiel 1: 1 channel extrahieren:
sox sound.wav -c 1 sound_left.wav avg -l

output:
sox sox: Effect `avg' is deprecated; see sox(1) for an alternative
sox mixer: Can't average 6 channels into 1 channels

beispiel 2: 5.1 direkt in stereo umwandeln:
sox sound.wav -c 2 sound_stereo.wav

output:
sox mixer: You must specify at least one mix level when using mixer with an unusual number of channels.


wenn ich google benutze kommt es mir so vor, als sei ich der einzige mensch der 5.1 in stereo umwandeln will :(

Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

#14 Beitrag von Janka » 27. Sep 2008 7:24

Beachte
http://sox.sourceforge.net/sox.html
und vor allem "remix" in
http://sox.sourceforge.net/soxeffect.html
Der default-Mixer "mixer" kann nur mit Quadrophonie umgehen, nicht mit Center und Subwoofer.

Ich habe jetzt auch keine 5.1-Datei greifbar, aber es müsste so gehen:

Code: Alles auswählen

$ sox sound.wav -c 2 stereo.wav remix 1 2 0 0 0 0 
Hier nimmt er z.B. die beiden ersten Kanäle von sound.wav und stopft sie in die beiden ersten Kanäle von stereo.wav, den Rest verwirft er.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

haggis
Beiträge: 5
Registriert: 25. Sep 2008 23:08

#15 Beitrag von haggis » 27. Sep 2008 11:42

ja super, jetzt gehts!

musste aber zuerst die neuen quellen (14.1.0) von SF laden, weil bei der version aus den ubuntu repos (14.0.0) hats gezickt und wollte nicht.

befehl war:
sox sound.wav -c 2 stereo.wav remix 1-2,2-3
(in der annahme dass ch 1 = vorne link, ch 2 = center, ch 3 = vorne rechts)

danke für die hilfe! :)

Antworten