vielleicht auch mal einfach ffmpeg/mencoder versuchen
mencoder hab' ich mal vor einem halben Jahr probiert. Mir gefällt das ganz Programm nicht. Man weiß einfach nicht was es tut.
ffmpeg hab' ich jetzt nicht direkt probiert, aber nochmal einen Versuch mit ffdshow-tryouts beta 4a rev1723 restartet. Funktioniert auch soweit ganz gut. Ähnlich wie CoreAVC. Allerdings versagen beide dramatisch bei PremiereHD Sport Übertragungen bei echten 50fps (25Hz interlaced). Beide würfeln Szenen wild durcheinander. Witzigerweise beide nur, wenn ich den AviSynth Frameserver mittels DirectShowSource() bemühe, jedoch nicht wenn ich diese im WMP wiedergebe.
Ich möchte aber ohnehin weg von DirectShow u.a. wegen Portabilität: Auf jedem Rechner sind unterschiedliche Codecs mit unterschiedlichen Merits und Features installiert. Ein portables Konvertertool wie Xvid4PSP bekommt man auf Basis von DirectShowSource nicht gescheint hin.
@EDIT: seit 6. Februar 2008 gibt's eine Command Line Version von DGAVCDec 1.0.0 Alpha 15
http://forum.doom9.org/showthread.php?p=1096739#post1096739
Meine Skripts habe ich sofort angepasst und es läuft prächtig. Ohne Audio/Video Versatz und ohne DirectShow Filter Abhängigkeiten. Hier mal aktualisierte Skripts von mir, der ein oder andere mag' sich da vielleicht was abgucken. z.B. wie man xport automatisiert:
convert_720p.bat:
convert.bat:
- @ECHO OFFset filepath=%~dp1set ext=%~x1set base=%~n1set tooldir=%CD%cd /D %filepath%if NOT "%ext%"==".ts" goto usage:: demux with xport:"%tooldir%\xport\xport" -p "%base%".ts 0 0 0 >_xport.outFOR /F "tokens=4" %%a IN ('FINDSTR /C:"Program Number" _xport.out') DO ( echo Program Number %%a found in %base%.ts. Demuxing ... "%tooldir%\xport\xport" "%base%".ts %%a 1 1 >_xport.out2)REN bits0001.mpv "%base%.h264":: create .dga file for AviSynth MPEG4-AVC importFOR /F "delims=()x tokens=3" %%a IN ('FINDSTR /C:"Program Number" _xport.out') DO ( "%tooldir%\dgavcdec100a15\DGAVCIndex.exe" -i "%base%.h264" -v %%a -o "%base%.dga" -f 0 -h)DEL /Q _xport.out:: set correct filename extensionFOR /F "tokens=8" %%a IN ('FINDSTR /C:"Audio PID" _xport.out2') DO set audiotype=%%aIF "%audiotype%"=="0x06" ( REN bits0001.mpa "%base%.ac3") ELSE ( REN bits0001.mpa "%base%.mpa")DEL /Q _xport.out2:: extract audio .> .wav:: BeSweet requires correct filename extension to detect audio typeif exist "%base%.ac3" ( set audiosrc="%base%.ac3") else ( if exist "%base%.mp2" ( set audiosrc="%base%.mp2") else ( set audiosrc="%base%.mpa"))"%tooldir%\BeSweetv1.4\BeSweet.exe" -core( -input %audiosrc% -output "%base%.wav" -2ch -logfile "%base%.BeSweet.log" ) -azid(-s stereo -c normal -L -3db )DEL /Q %audiosrc% "%base%.BeSweet.log":: convert .wav -> .aac"%tooldir%\neroAacEnc_v1_1_34_2\neroAacEnc_SSE.exe" -br 128000 -lc -if "%base%".wav -of "%base%".aacDEL /Q "%base%".wav:: put filename in .avsCALL "%tooldir%\%2" ^ "%base%.dga" ^ %tooldir% ^ >"%base%.avs":: convert video"%tooldir%\x264.revision.667.icl\x264.exe" --bitrate 8192 -A all --aud --level 4.1 --ref 3 --mixed-refs --bframes 3 --direct auto --threads auto --thread-input --progress "%base%.avs" -o "%base%264.mp4"DEL /Q "%base%.h264" "%base%.dga" "%base%.avs":: mux audio + video -> .mp4"%tooldir%\MP4Box\MP4Box.exe" -add "%base%264.mp4" -add "%base%.aac" -new "%base%.mp4"DEL /Q "%base%264.mp4" "%base%.aac"goto end:usageecho usage:echo %0 filename.ts:endREM exit
scripts\template_dx_video720p.bat fehlt noch:
Vorteile:
. vollautomatisch
. transcoding mit niedriger Taskpriorität
. volle Kontrolle über 720p, 1080p, Deinterlacer (hier braucht man nur einzeilige zusätzliche convert_1080p, convert_720p_deinterlace, die jeweils convert.bat parametrisiert aufrufen)
. MultiCore Support
. keine DirectShow Filter Abhängigkeit
Nachteile / ToDos:
. Einige Operationen wie [ts -> .mpv/.mpa demux] sowie [.mpv -> PS3 MPEG4-AVC] geschehen im gleichen Verzeichnis / gleiche Platte. Hier wäre es besser beide Kopieroperationen mit source/target auf unterschiedlichen Platten zu haben. Also: Support für ein TEMP Verzeichnis auf einer anderen Platte.
bg,
7oby