mencoder bash script


dedeibel

Active Member
Joined
Oct 7, 2005
Messages
544
Location
Germany
Website
Visit site
Hi,

Ich habe mir ein kleines bash script geschrieben, um mir ganz einfach meine Videos für den gp2x zu codieren. Nun dachte ich mir es könnte vielleicht den ein oder anderen interessieren.

Das ganze benutzt mencoder mit mp3lame und lavc oder xvid und kann da es recht modular ist einfach erweitert werden. Am meisten benutze ich es indem ich einfach "reencode in meinVideo.mpg" aufrufe und es mir das Video ein default Verzeichnis legt (In der Sciptdatei anpassen).

Das ganze ist mit default werten gefüttert, die mir bei einigen Tests als effektiv erschienen. Die wichtigsten Parameter sind "in" "out" und vielleicht noch "dvd"

Es wäre cool, wenn das ganze mal jemand ausprobieren und vielleicht etwas feedback geben könnte.

reencode
 
jetz braucht man nur noch ein script welches die videos in psx roms erkennt und wegripped.
 
sieht super aus, sogar weitaus ebsser als mein scripchen zum encoden =)

hut ab
 
Jawoll, im gegensatz zu meinem Script encodiert dieses hier meine DVB-T Aufnahmen von meiner Freevo-Box mit Sound für den GP2X - suuuuuuper, danke!
 
Xvid-Problem

<t>Hi,<br/>
<br/>
danke für die Arbeit. Mit der Standard-Einstellung funktioniert das umwandeln (=Divx5, Qualität am Monitor der Grösse entsprechend gut, gp2x ist bestellt). Mit der Option "-c xvid" kommt folgende Fehlermeldung:<br/>
<br/>
Failed to open frameno.avi<br/>
xvidencopts is not an MEncoder option<br/>
<br/>
Ich benutze "MEncoder 1.0pre7try2-3.3.6".<br/>
<br/>
Cu<br/>
<br/>
Tom</t>
 
Re: Xvid-Problem

<r><QUOTE author="tomtom+"><s>
tomtom+ said:
</s>Failed to open frameno.avi<br/>
xvidencopts is not an MEncoder option<br/>
<br/>
Ich benutze "MEncoder 1.0pre7try2-3.3.6".<e>
</e></QUOTE>

Danke für die Meldung,<br/>
<br/>
das mit frameno ist nicht weiter schlim aber xvidencopts sollte es schon geben. Die mencoder version 1.0pre7try2-3.3.5 habe ich.<br/>
<br/>
Bist du sicher, dass du xvid support in deinem mplayer hast?<br/>
<br/>
Was sagt? <CODE><s>
Code:
</s>mencoder -ovc help<e>
</e></CODE>

Falls dort xvid auftaucht, kannst du mal in der "man mencoder" nachschauen ob da bei dir was von xvidencopts oder ähnlich drin steht?<br/>
<br/>
<br/>
Gruss dedeibel</r>
 
Ups, danke "emerge".

<r><CODE><s>
Code:
</s><i>
</i>vailable codecs:
   copy     - frame copy, without re-encoding. Doesn't work with filters.
   frameno  - special audio-only file for 3-pass encoding, see DOCS.
   raw      - uncompressed video. Use fourcc option to set format explicitly.
   nuv      - nuppel video
   divx4    - divx4linux/divx5linux library (depends on configuration)
   lavc     - libavcodec codecs - best quality!
   vfw      - VfW DLLs, currently only AVID is supported.
   qtvideo  - QuickTime DLLs, currently only SVQ1/3 are supported.
<e>
</e></CODE>

Ok, soviel zum Thema "xvid". Werde Porthole (Gentoo) nochmal anwerfen.<br/>
<br/>
Melde mich wieder.<br/>
<br/>
cu<br/>
<br/>
Tom</r>
 
xvid geht!

<r>Hi,<br/>
<br/>
Fehler lag bei mencoder bzw. bei mir, da ich das Use Flag "xvid" in meiner make.conf nich gesetzt habe. <br/>
<br/>
Vergleich:<br/>
<br/>
-Ursprungsdatei (Scrat is gone nutty /Ice Age) > 30 MB, Auflösung: 700x?, Divx<br/>
<br/>
- Standardeinstellung = 10,8 MB<br/>
- Standardeinstellung mit Xvid (2Pass) = 10,6 MB<br/>
- Standardeinstellung mit Xvid + 1 Pass = 10,2 MB<br/>
<br/>
Die drei Muster sind nur bei mehr als 200% Vergrösserung minimal zu unterscheiden (Monitor, Xine-Player). Somit scheint "Xvid 1Pass" das bessere Zeit/Qualitäts-Verhältnis zu haben, da die Umwandlung auf meinem System nur knapp 3 Min. dauert. "Divx5" >8 Min, "Xvid 2Pass" >7 Min. <br/>
<br/>
Zwei Ergänzungen wären optimal:<br/>
<br/>
- "Muster/Test-Funktion": Es werden z.B. nur 3 Minuten oder X Frames aus der Mitte des Filmes umgewandelt. So könnte man bei "richtigen" Filmen die Einstellungen testen.<br/>
<br/>
- Die Möglichkeit, mehrere Dateien nacheinander umzuwandeln (z.B. "reencode <B><s></s>-i aaa.avi, abc.mpg, cba.wmv<e></e></B> -c xvid usw.")<br/>
<br/>
<br/>
Nochmal Danke für das super geile Script!<br/>
<br/>
cu<br/>
<br/>
Tom</r>
 
Hi,

es gab ein paar kleine Änderungen und es hat nun auch eine sample funktion. Allerdings musst du die startposition schon selber angeben, dennoch finde ich die Funktion mittlerweile selber als sehr Nützlich. :)
Code:
reencode -i longMovie.avi -l 1h

Macht ein 3min Sample nach einer Stunde und legt es als "longMovie-sample.avi" in das Ausgabeverzeichnis.

reencode

Wegen mehreren Dateien auf einmal bin ich noch am grübeln, ich müsste dann vielleicht die möglichkeit nur "in", "out" schreiben zu können aufgeben, damit ich besser testen kann wann wieder Parameter kommen. Eine andere Möglichkeit wäre einfach nen Wrapper zu schreiben "multiencode", der das Script mehrmals mit den selben Parametern aufruft.

Ich habe es bisher immer so gemacht aber das ist wohl nicht mehr so komfortabel.
Code:
<i>
</i>for i in TolleSerie* ; do reencode in "$i" codec xvid ; done

Edit: Tippfehler beseitigt
 
in de rhoffnung es hilft dir =)

so hab ich es bei meinem script gemacht, das es mehrere encoden kann, naja aber habs nicht weitergeschrieben, weil hey: deins is besser =) und warum das rad neu erfinden
Code:
<i>
</i>#!/bin/sh

MENCODER="/usr/bin/mencoder"

#lamemodes: abr,cbr or vbr
LAMEMODE="abr"
#
XSOLUTION=320
#in kbits:
AUDIOBITRATE=96
VIDEOBITRATE=250
OPTS="-vop scale -zoom -xy $XSOLUTION -oac mp3lame -lameopts $LAMEMODE:br=$AUDIOBITRATE:mode=0 -ffourcc DX50 -ovc lavc -lavcopts vcodec=mpeg4:vhq=4:vbitrate=$VIDEOBITRATE"

if [ -z "$@" ]
then
    echo " USAGE: convert2gp2x videofile1 videofile2"
    echo " EXAMPLE: convert2gp2x \"/tmp/the big apple.avi\" /mnt/fun/*.mpeg"
    echo ""
else
    for INPUTNAME in "$@";
    do
	if [ -r "$INPUTNAME" ]
        then
            echo "processing "$INPUTNAME"..."
    	    echo "######################################################################"
	    echo "" 
	    OUTPUTNAME="$(basename "$INPUTNAME" ${INPUTNAME##*.})gp2x.avi"
	    $MENCODER -o "$OUTPUTNAME" $OPTS "$INPUTNAME"
	    echo ""
	    echo ""
	else
	    echo "ERROR: cannot read "$INPUTNAME""
	fi
    done
fi
 
sample funktion rockt!

<r>Hi,<br/>
<br/>
die Sample-Funktion ist klasse. Habe vor 1-2 Jahren ein paar Sachen/DVD-Recorder-Aufnahmen für meinen Medion PPC umgewandelt. Hab jetzt mal mit ein paar Eingangsformaten experimentiert, um das Zeug auf den gp2x zu bringen:<br/>
<br/>
<U><s></s>Eingansformat -> xvid/gp2x-Format<e></e></U><br/>
avi (dix3,4,5/Xvid) -> perfekt<br/>
wmv -> sehr schlecht<br/>
asf -> noch schlechter als wmv<br/>
mp4 -> nur noch schwarz mit grauem Streifen<br/>
<br/>
Kann das jemand bestätigen?<br/>
<br/>
cu<br/>
<br/>
Tom</r>
 
Ich habe hier ein mp4.

Das ganze lässt sich zwar komplett encoden habe ich gerade festgestellt aber man kann nicht mit -ss 4:00 an einer anderen Stelle anfangen, weil es sich bie mir über einen kaputten Header und ein Fehlendes Marker Bit beschwehrt.

Vielleicht noch nen bug im mencoder.
 
Wieder ein paar Verbesserungen, nun mit multifile support. Nach den Eingabedateien muss nun ein "-" oder ein Befehl mit einem "-" am Anfang kommen. Am einfachsten ist es das ganze ans Ende zu stellen.
# reencode codec xvid in justdoit.avi anotherFile.mpg
# reencode in *.mpg -d /tmp
# reencode in *.mpg - out /tmp

# 0.10
# - Added multiple input files support
# - You can now also specify an output directory with -o
# - Input files will be checked for existance
# - Added troubleshooting section
# - More comments
# - Unimportant problem with multi pass enc fixed

reencode
 
Tatsache :) Jetzt brauchsts nur noch eine Option um die Audiospur auszuwählen
 
Am Ende "-e -alang de", "-e -aid 2" oder was auch immer du willst auswählen.

Wenn du zum Beispiel immer die Deutsche Tonspruch haben wolltest, könntest du das auch einfach im Script in die Variable "extraOptions" als default eingtragen.
 
Transcode - Alternative?

<r>Hi,<br/>
<br/>
meine alten wmv klappen auch nach zig Versuchen nicht. Hat einer von euch Erfahrung mit Transcode <URL url="http://www.transcoding.org"><s></s>http://www.transcoding.org<e></e></URL> ? Wäre es möglich/sinnvoll beide Programme in das Script einzubauen? Auf den ersten Blick sieht Transcode wesentlich komplizierter (Parameter/Zusatzprogramme) als Mencoder aus.<br/>
<br/>
cu<br/>
<br/>
Tom</r>
 
ja habe transcode leider noch nie benutzt aber mencoder hat schon einige Bugs die nerven.

Ich weiß nicht ob ich momentan so dazu kommen.
 
Back
Top