Vorbereitung:
- ProjectX installieren
- ffmpeg installieren
- in avi2rec.bat die Pfade zu diesen 2 Programmen anpassen
- alle Dateien in ein Verzeichnis legen:
- avi2rec.bat
- X.ini (EDIT: bei der Version aus post #5 nicht nötig)
- alle avi's, die transcodiert werden sollen
- avi2rec.bat starten
- die entstandenen rec-Dateien auf den Toppi übertragen.
Das funktioniert für normale Dateinamen, aber nicht bei Dateinamen mit Sonderzeichen (space, "&" und "-"). Das Problem liegt bei den Dateien "Filename.mpg.in_progress", die ich erzeuge, um nach einem Programmabbruch erkennen zu können, welche Dateien unvollständig bearbeitet wurden. Kann mir hier jemand sagen, wie man den Dateinamen auch mit Sonderzeichen korrekt erzeugen kann ?
Dies ist meine erste Version von "avi2rec.bat" (Anwendung auf eigenes Risiko):
Code: Alles auswählen
:avi2rec.bat by kiss_me
set ffmpeg="C:\Dokumente und Einstellungen\.......\FFmpeg-svn-15666\ffmpeg.exe"
set proj_x="C:\Dokumente und Einstellungen\.......\ProjectX_Source_0.90.4\ProjectX.jar"
set resolution=720x576
set frame_rate=25
set aspect_rat=16:9
set audio_samp=48000
set audio_rate=192000
set video_rate=4000000
for %%a in (*.avi) do (
:set current_dir=%~dp0
:set name=%%~na
:set ext=%%~xa
if exist "%%~na.mpg.in_progress" (
rm "%%~na.mpg"
rm "%%~na.mpg.in_progress"
)
if not exist "%%~na.mpg" (
touch "%%~na.mpg.in_progress"
%ffmpeg% -i "%%a" -s %resolution% -r %frame_rate% -vcodec mpeg2video -acodec mp2 -ab %audio_rate% -ar %audio_samp% -b %video_rate% -aspect %aspect_rat% "%%~na.mpg"
rm "%%~na.mpg.in_progress"
)
)
for %%a in (*.mpg) do (
if exist "%%~na.rec.in_progress" (
rm "%%~na.rec"
rm "%%~na.rec.in_progress"
)
if not exist "%%~na.rec" (
touch "%%~na.rec.in_progress"
java -jar %proj_x% -tots -out %~dp0 "%%~fa"
rm "%%~na.rec.in_progress"
rm "%%~na_log.txt"
)
)
Code: Alles auswählen
# Project-X INI
# ProjectX 0.90.4.00 / 30.03.2006
# Application
Application.Agreement=1
Application.Language=en
# CollectionPanel
CollectionPanel.CutMode=0
# MainPanel
MainPanel.ConversionMode=4
# SpecialPanel
SpecialPanel.Input.concatenateForeignRecords=1
SpecialPanel.TS.HeaderMode=2
# WindowPosition
WindowPosition.Main.Height=652
WindowPosition.Main.Width=906
WindowPosition.Main.X=151
WindowPosition.Main.Y=284
Code: Alles auswählen
: funktioniert nicht, selbst nur ein Leerzeichen am Zeilenende stört ProjectX:
echo # Project-X INI > X.ini
echo # ProjectX 0.90.4.00 / 30.03.2006 >> X.ini
echo # >> X.ini
echo # Application >> X.ini
echo Application.Agreement=1 >> X.ini
echo Application.Language=en >> X.ini
echo # >> X.ini
echo # CollectionPanel >> X.ini
echo CollectionPanel.CutMode=0 >> X.ini
echo # >> X.ini
echo # MainPanel >> X.ini
echo MainPanel.ConversionMode=4 >> X.ini
echo # >> X.ini
echo # SpecialPanel >> X.ini
echo SpecialPanel.Input.concatenateForeignRecords=1 >> X.ini
echo SpecialPanel.TS.HeaderMode=2 >> X.ini
Für weitere Anregungen, Kritik und Verbesserungsvorschläge bin ich immer dankbar. Als Linux-Mensch fällt mir die DOS-batch-Programmierung etwas schwer...