1. Cookies optimieren die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklärst Du dich damit einverstanden, dass wir Cookies verwenden. Weitere Informationen
    Information ausblenden
  2. Willkommen im Forum von DIGITAL FERNSEHEN - dem führenden Portal für digitales Fernsehen, Medien und Entertainment. Wenn du hier neu bist, schau dich ruhig etwas um und melde dich an, um am Forengeschehen teilnehmen zu können.
    Information ausblenden

Hier ein Skript, um MPEG2 nach DivX & Co zu wandeln:

Dieses Thema im Forum "Heimkino mit dem PC" wurde erstellt von Gummibaer, 21. November 2003.

  1. Gummibaer

    Gummibaer Platin Member

    Registriert seit:
    10. März 2003
    Beiträge:
    2.375
    Zustimmungen:
    0
    Punkte für Erfolge:
    46
    Anzeige
    Hier ein Skript, um MPEG2 nach DivX & Co zu wandeln:

    Das ganze basiert auf dem mencoder (aus dem mplayer-Paket) und läuft nur unter Windows NT (4.0, 5.0 aka Win2000, 5.1 aka WinXP)

    Es sind 3 einzelne Teile: mEncode.cmd, mEncodeAll.cmd und mEncANPr.cmd

    Für den Benutzer sind nur die ersten beiden gedacht, das erste Skript braucht 3 Parameter (Codec, Bitrate, Dateiname), das zweite nur zwei (Codec, Bitrate). Für das zweite muß das aktuelle Verzeichnis ausserdem das mit den zu konvertierenden Dateien sein. Beim Total Commander erreicht man dies, indem man das Feld "StartPfad" der Toll-Verknüpung leer macht.

    Als Eingabedatei geht alles, was auch der mplayer frißt, also zu ziemlich alles, was es gibt, inkl. Quicktime, WMV, ASF, Realmedia und ähnlichem Unfug.

    Das Skript, das ein Verzeicnis automatisch konvertiert macht sich aber nur an MPEG2-Dateien zu schaffen (kann aber leicht angepaßt werden)

    Mögliche Ausgabeformate sind:
    mjpeg (Motion JPEG)
    ljpeg (Lossless JPEG)
    h263 (H263)
    h263p (H263 Plus)
    mpeg4 (DivX 4/5)
    msmpeg4 (DivX 3)
    msmpeg4v2 (MS MPEG4v2)
    wmv1 (Windows Media Video, version 1 (aka WMV7))
    wmv2 (Windows Media Video, version 2 (aka WMV8))
    rv10 (an old RealVideo codec)
    mpeg1video (MPEG1 video)
    mpeg2video (MPEG2 video) WICHTIG: nur der mplayer kann AVIs mit MPEG2-Inhalt abspielen, brauchbare MPEG-Dateien kann der mencoder derzeit leider noch nicht erzeugen!
    huffyuv (HuffYUV)
    asv1 (ASUS Video v1)
    asv2 (ASUS Video v2)
    ffv1 (FFmpeg's lossless video codec)

    Hammer, was?! H.264 dürfte demnächst dazukommen.
    Übrigens erschreckend: bei nur 50% mehr Dateigröße ist ein mit mencoder erzeugtes MPEG2 kaum von einem DivX zu unterscheiden. DivX ist also ganz und gar nicht so überlegen, wie alle tun (IMHO bestenfalls halbe Bitrate bei gleicher Qualität), aber bei MPEG2 wird offenbar vor allem von den TV-Sendern sau-mieserabel komprimiert! Ich denke, wenn man PAL progressive senden und die Inhalte nicht erst beim senden, sondern schon vorher mit 2pass-Encoding codieren würde, gäbe es bei keinem Sender mehr Klötzchen, ohne die Datenraten erhöhen zu müssen. Bei DVDs wird dies ja (hoffentlich) getan.


    Die 3 Skripte sollte man in einem Unterverzeichnis unterhalb des mplayer-Verzeichnisses unterbringen, "batchmode" ist der name, den ich dafür gewählt habe. Das kann aber angepaßt werden. Es ist sowieso in ALLEN 3 Skripten nötig, den Pfad anzupassen, es sei denn ihr packt diese 3 Skripte in das Verzeichnis: "c:\Programme\mplayer\batchmode"

    Wenn ihr Toolbar-Verknüpfungen im Total Commander erstellt, achtet darauf, dass ihr das Feld "Startpfad" leer macht - es wird dann der Pfad des aktiven verzeichnisses benutzt. Ausserdem müssen beide Einträge mit dem Parameter für Codec (z.B. mpeg4) und der Bitrate (z.B. 900) versehen werden. Den dritten Parameter bekommt das Skript mEncode.cmd, wenn man eine Datei drauffallen läßt (unbedingt mit der nächsten warten, bis die vorherige fertig konvertiert ist!)

    Kommandozeilen-Entusiasten können sich den Kram natürlich auch sparen winken

    So, hier aber nun endlich die 3 Dateien:


    ============================================================
    echo off

    REM --------------------------------------------------------------------------------
    REM Windows NT script to automate DivX/XVid encoding with mencoder
    REM (C) Nov 2003 by Gummibaer
    REM Do with this what you like, except selling it.
    REM --------------------------------------------------------------------------------
    REM This Script has to reside in a sub directory of mplayer/mencoder,
    REM e.g. named "BatchMode"
    REM This dir name then has to be adjusted in all 3 batch files by
    REM editing the variable %BatchDir%
    REM
    REM Names of all needed batch script files are:
    REM
    REM mEncode.cmd - the file you are reading right now ;-)
    REM
    REM mEncodeAll.cmd - enables you to adjust encoding process priority, should be
    REM set to "IDLE", because then you will not even recognize
    REM that your CPU is busy when using other applications.
    REM
    REM mEncANPr.cmd - do NOT use this directly - will slow down every other App.
    REM --------------------------------------------------------------------------------
    REM
    REM Usage: Encode.cmd <Codec> <bitrate> <inputfilename>
    REM
    REM Codec mpeg4 and Bitrate 800..1200 is a good Idea
    REM Output file name will be <inputfilename%OutFileExt%>
    REM
    REM Possible Codecs (see mencoder manpage)
    REM
    REM mjpeg (Motion JPEG)
    REM ljpeg (Lossless JPEG)
    REM h263 (H263)
    REM h263p (H263 Plus)
    REM mpeg4 (DivX 4/5)
    REM msmpeg4 (DivX 3)
    REM msmpeg4v2 (MS MPEG4v2)
    REM wmv1 (Windows Media Video, version 1 (aka WMV7))
    REM wmv2 (Windows Media Video, version 2 (aka WMV8))
    REM rv10 (an old RealVideo codec)
    REM mpeg1video (MPEG1 video)
    REM mpeg2video (MPEG2 video) - Remember: Only mplayer can play AVIs with MPEG2!
    REM huffyuv (HuffYUV)
    REM asv1 (ASUS Video v1)
    REM asv2 (ASUS Video v2)
    REM ffv1 (FFmpeg's lossless video codec)
    REM
    REM --------------------------------------------------------------------------------

    REM --------------------------------------------------------------------------------
    REM Do not free BatchDir-Variable at the end of this script!
    REM --------------------------------------------------------------------------------
    SET BatchDir=C:\Programme\MPlayer\BatchMode
    SET LogName=mEnc_Duration.log
    SET MencErrLog=mEnc_ErrMsgs.log
    SET OutFileExt=_%1-%2k.avi
    SET OutFormat=
    REM --------------------------------------------------------------------------------
    REM ---- If you remove the "REM"s from the next two lines, MPEG files will be
    REM ---- written, when codec "mpeg2video" is chosen. BUT BE AWARE: since MPEG file
    REM ---- output is beta code in mencoder, it's likely you will become crappy files
    REM ---- The MPEG files I got were full of weird errors.
    REM ---- But it ist possible to output MPEG2 into AVI files - BUT BE AWARE AGAIN:
    REM ---- The ONLY player that can play such AVI files is mplayer!
    REM --------------------------------------------------------------------------------
    REM IF %1==mpeg2video ( SET OutFileExt=_%1-%2k.mpg
    REM SET OutFormat=-of mpeg )
    REM --------------------------------------------------------------------------------

    REM --------------------------------------------------------------------------------
    REM use this option to print parameters for crop filter to stdout
    REM unfotunately mencoder can't create a file for itself that it then
    REM could read again and autocrop :-(
    REM SET MencOpts=autoaspect -vf cropdetect
    REM --------------------------------------------------------------------------------
    REM The optimal settings for high quality encoding and small files
    REM (as far as I could figure out):
    REM
    SET MencOpts=autoaspect:vhq:vqmin=2:vlelim=-4:vcelim=9:lumi_mask=0.05:dark_mask=0.01 -sws 2 -vf lavcdeint -vf pp=hb/vb/dr/-al/lb -vf scale=480:384
    REM
    REM --------------------------------------------------------------------------------
    REM Eventually slightly better quality, but reasonable bigger files:
    REM (I can't see a difference in quality)
    REM
    REM SET MencOpts=autoaspect:vhq:mv0:trell:cbp:vqmin=2:vlelim=-4:vcelim=9:lumi_mask=0.05:dark_mask=0.01 -sws 2 -vf lavcdeint -vf pp=hb/vb/dr/-al/lb -vf scale=480:384
    REM
    REM --------------------------------------------------------------------------------


    REM echo 60 Linefeeds (0A hex)
    echo Working at file File: %3%OutFileExt%
    REM echo 1 Linefeed (0A hex)

    echo File: %3 >>%BatchDir%\%LogName%
    echo --------------------------------------------------------------------------------------- >>%BatchDir%\%MencErrLog%
    echo File: %3 >>%BatchDir%\%MencErrLog%

    IF EXIST frameno.avi del frameno.avi

    echo %date% %time% - 1st pass >>%BatchDir%\%LogName%
    echo %date% %time% - 1st pass >>%BatchDir%\%MencErrLog%

    %BatchDir%\..\mencoder 2>>%BatchDir%\%MencErrLog% %3 -ovc frameno -o frameno.avi -oac mp3lame -lameopts vbr=2:abr:br=112:q=0:aq=0

    echo %date% %time% - 2nd pass >>%BatchDir%\%LogName%
    echo %date% %time% - 2nd pass >>%BatchDir%\%MencErrLog%


    %BatchDir%\..\mencoder 2>>%BatchDir%\%MencErrLog% %3 -ovc lavc -lavcopts vcodec=%1:vpass=1:vbitrate=%2:%MencOpts% -oac copy %OutFormat% -o %3%OutFileExt%

    echo %date% %time% - 3rd pass >>%BatchDir%\%LogName%
    echo %date% %time% - 3rd pass >>%BatchDir%\%MencErrLog%


    %BatchDir%\..\mencoder 2>>%BatchDir%\%MencErrLog% %3 -ovc lavc -lavcopts vcodec=%1:vpass=2:vbitrate=%2:%MencOpts% -oac copy %OutFormat% -o %3%OutFileExt%

    echo %date% %time% - Finished >>%BatchDir%\%LogName%
    echo %date% %time% - Finished >>%BatchDir%\%MencErrLog%


    SET LogName=
    SET MencErrLog=
    SET MencOpts=
    SET OutFileExt=
    SET OutFormat=

    IF EXIST divx2pass.log del divx2pass.log
    IF EXIST frameno.avi del frameno.avi

    REM 3 Beeps (07 hex)
    IF EXIST "%BatchDir%\mEncodeBatch_Beep=YES" echo 


    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    ============================================================
    echo off

    REM --------------------------------------------------------------------------------
    REM This file has to be started from the path of the video files
    REM to be converted (because sth, like "cd l:videodir" ist not
    REM possible thanks to windows
    REM
    REM When using with "Total Commander" you have to clear the
    REM "starting path" field
    REM
    REM --------------------------------------------------------------------------------
    REM
    REM Usage: Encode.cmd <Codec> <bitrate>
    REM
    REM Codec mpeg4 and Bitrate 800..1200 is a good Idea
    REM Output file name will be <inputfilename%OutFileExt%>
    REM
    REM Possible Codecs (see mencoder manpage)
    REM
    REM mjpeg (Motion JPEG)
    REM ljpeg (Lossless JPEG)
    REM h263 (H263)
    REM h263p (H263 Plus)
    REM mpeg4 (DivX 4/5)
    REM msmpeg4 (DivX 3)
    REM msmpeg4v2 (MS MPEG4v2)
    REM wmv1 (Windows Media Video, version 1 (aka WMV7))
    REM wmv2 (Windows Media Video, version 2 (aka WMV8))
    REM rv10 (an old RealVideo codec)
    REM mpeg1video (MPEG1 video)
    REM mpeg2video (MPEG2 video) - Remember: Only mplayer can play AVIs with MPEG2!
    REM huffyuv (HuffYUV)
    REM asv1 (ASUS Video v1)
    REM asv2 (ASUS Video v2)
    REM ffv1 (FFmpeg's lossless video codec)
    REM
    REM --------------------------------------------------------------------------------

    SET BatchDir=C:\Programme\MPlayer\BatchMode

    START /LOW %BatchDir%\mEncANPr.cmd %1 %2

    SET BatchDir=

    exit

    REM --------------------------------------------------------------
    REM Possible Priorities: LOW, BELOWNORMAL, NORMAL
    REM Use LOW if you don't want other tasks/processes to slow down
    REM --------------------------------------------------------------

    REM --------------------------------------------------------------
    REM Tip: CMD.exe window should be set to
    REM 120x50 characters
    REM X=50, Y=50 for the upper left
    REM (Save for "all windows with this name")
    REM --------------------------------------------------------------


    :
    :
    :
    :
    :
    :
    :
    :
    :
    :
    ============================================================
    echo off
    cls

    SET BatchDir=C:\Programme\MPlayer\BatchMode

    SET ConvFTypes=*.mpg *.mpeg *.mpeg2 *.vob


    echo Folgende Dateien nach DivX konvertieren: ? (STRG+C wenn Abbruch gewuenscht)
    echo \
    for %%a in (%ConvFTypes%) do echo "%%~fa"
    echo /
    pause

    for %%a in (%ConvFTypes%) do %BatchDir%\mEncode.cmd %1 %2 "%%~fa"

    REM Der folgende Kram wird nicht mehr ausgeführt, weiß der Henker (oder Billy Boy) wieso?!?
    SET BatchDir=
    SET ConvFTypes=
    pause
    exit


    .


    Bleibt eigentlich nur doch das fehlende Auto-Crop. Wenn man mencoder die Pixel angeben könnte, die es an den 4 Rändern wegschneinden soll, wäre es ja einfach, zumindest mal fix überall 16 Pixel abzusägen. Leider aber muß man eine linke obere Ecke und den zu behaltenden Bereich angeben entt&aum

    Weiß zufällig jemand, wie man beim echo Befehl Escape-Sequenzen übergibt, so dass man Linefeeds oder beeps, etc. ausgeben kann?
    Alle tips, die ich dazu gefunden habe funktionieren nur unter DOS oder vielleicht auch mit command.com, aber nicht mit cmd.exe.

    <small>[ 22. November 2003, 01:51: Beitrag editiert von: Gummibaer ]</small>
     
  2. Gummibaer

    Gummibaer Platin Member

    Registriert seit:
    10. März 2003
    Beiträge:
    2.375
    Zustimmungen:
    0
    Punkte für Erfolge:
    46
    Vorweg: Fall jemand ein Skript für Linux sucht, das gibt's z.B. hier:
    http://ma.hoff.bei.t-online.de/2divx_wip/

    Wenn ihr euch jetzt fragt, wo ihr den mplayer, mencoder oder zusätzliche Codecs herbekommt - allgemein hier: www.mplayerhq.hu und ohne groß herumsuchen zu müssen hier:

    http://www.mplayerhq.hu/MPlayer/releases/win32-beta
    Direkt-Link:
    http://www.mplayerhq.hu/MPlayer/releases/win32-beta/mplayer-mingw32-dev-CVS-031013.zip

    Und dann noch das Codec-Paket:
    http://ftp3.mplayerhq.hu/MPlayer/releases/codecs
    Direkt-Link:
    http://ftp3.mplayerhq.hu/MPlayer/releases/codecs/win32codecs.tar.bz2

    Ich weiß gar nicht, ob da die einzeln aufgeführten Codecs auch alle enthalten sind, ggf. nachladen. Aber sind sowieso so Exoten wie RealMedia, Quicktime und ähnlicher Unfug.

    Die .bz2-Dateien kann man mit dem Total Commander und dem passenden bz2-Plugin (beides kostenlos auf www.ghisler.com zu haben) auspacken.
    Den Total Commander muß man nach 30 Tagen registrieren - er funktioniert aber auch noch danach.

    http://www.ghisler.com
    Direkt-Link:
    http://fileforum.betanews.com/download.php?fid=945901171

    http://www.ghisler.com/plugins.htm
    Direkt-Link:
    http://ghisler.fileburst.com/plugins/bzipplug.zip

    Jetzt sollte ihn auch der faulste runterladen können l&auml;c

    MÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖP! STOP! ===&gt; Der brandneue (17.11.2003) Total Commander 6.00 kann bz2-Dateien auch schon "von Natur aus" auspacken, wie es scheint (wurde ja auch mal Zeit!)

    Und damit niemand der keine Lust hat, die Anleitung zu lesen sagt, der mplayer wäre Mist und könne ja nichtmal den Ton syncron halten, bitte dies in die mplayer\config schreiben:

    <small>[ 22. November 2003, 02:45: Beitrag editiert von: Gummibaer ]</small>
     
  3. Gorcon

    Gorcon Kanzler Premium

    Registriert seit:
    15. Januar 2001
    Beiträge:
    148.628
    Zustimmungen:
    26.885
    Punkte für Erfolge:
    273
    Technisches Equipment:
    VU+ Uno 4K SE mit Neutrino HD + VTi
    Kann Winrar übrigens auch. winken
    Gruß Gorcon