Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Automatisierte Videokonvertierung

Frage Entwicklung Batch & Shell

Mitglied: A0D0S0

A0D0S0 (Level 1) - Jetzt verbinden

18.07.2011 um 09:42 Uhr, 3167 Aufrufe, 6 Kommentare

Hallo! Wie schon im Titel erwähnt bin ich dabei eine batch - Datei zu schreiben , die mir automatisch meine Videos konvertiert

Ich will:
Wenn ich ein Video in einen bestimmten Ordner ziehe wird das Video automatisch konvertiert und
in einen anderen Ordner verschoben.


Ich hab mir das so gedacht:
Ich hab mir ein watch - dir programm geholt, dass merkt wenn der Ordner verändert wurde
und führt automatisch ein batch - File aus. Das Batch File holt sich allererst den Dateinamen aus dem
Ordner und ruft dann das Commando - Line Konvertierungsprogramm FFMPEG auf.



Das Problem:
Der Grundaufbau steht und funktioniert, aber : wenn ich merere Files gleichzeitig in den
Ordner kopier werden nicht alle Dateinamen erkannt.


Code:

@echo off

for %%i in (D:\VID\VIDEO_OLD\*.*) do (
set Dateinamex=%%~nxi
set Dateiname=%%~ni
)

D:\VID\waitclose.exe 100 D:\VID\VIDEO_OLD\%Dateinamex%
echo bereit
D:\Convert\ffmpeg\bin\ffmpeg.exe -i D:\VID\VIDEO_OLD\%Dateinamex% -t 30 -s qvga -t 30 D:\VID\VIDEO_NEW\%Dateiname%.flv
echo ---------------------------------Conversion Succesful---------------------------
move D:\VID\VIDEO_OLD\%Dateinamex% D:\VID\VIDEO_BACKUP\%Dateinamex%



Zur Information:
Waitclose wartet bs die Datei vollständig kopiert ist.

Ich danke euch jetzt schon für die Antworten !

LG A0D0S0
Mitglied: miniversum
18.07.2011 um 12:34 Uhr
Du musst dann die Verarbeitung mit in die Schleife nehmen um jede Datei einzeln zu verarbeiten:
01.
@echo off 
02.
 
03.
for %%i in (D:\VID\VIDEO_OLD\*.*) do ( 
04.
D:\VID\waitclose.exe 100 D:\VID\VIDEO_OLD\%%~nxi 
05.
echo bereit 
06.
D:\Convert\ffmpeg\bin\ffmpeg.exe -i D:\VID\VIDEO_OLD\%%~nxi -t 30 -s qvga -t 30 D:\VID\VIDEO_NEW\%%~ni.flv 
07.
echo ---------------------------------Conversion Succesful--------------------------- 
08.
move D:\VID\VIDEO_OLD\%%~nxi D:\VID\VIDEO_BACKUP\%%~nxi 
09.
)
Bitte warten ..
Mitglied: Arano
18.07.2011 um 12:37 Uhr
Hallo A0D0S0

Es liegt an deiner FOR-Schleife !
Sie durchläuft zwar den Ordner wie du es wünscht und speichert die gefundenen Dateinamen in %Dateiname% aber sie überschreibt die Variable auch jedes mal ! So bleibt nur der zuletzt gefundene Dateiname in der Variable erhalten.

Außerdem der Konvertierungsprozess eh nur ein einziges mal abgearbeitet wird - wodurch nur ein Video Konvertiert werden könnte

Du musst den Konvertierungsprozess also noch mit in die FOR-Schleife schieben, damit auch dieser für jede gefunden Datei ausgeführt wird.
01.
for %%i in (D:\VID\VIDEO_OLD\*.*) do ( 
02.
    set Dateinamex=%%~nxi 
03.
    set Dateiname=%%~ni 
04.
     
05.
    D:\VID\waitclose.exe 100 D:\VID\VIDEO_OLD\%Dateinamex% 
06.
    echo bereit 
07.
    D:\Convert\ffmpeg\bin\ffmpeg.exe -i D:\VID\VIDEO_OLD\%Dateinamex% -t 30 -s qvga -t 30 D:\VID\VIDEO_NEW\%Dateiname%.flv 
08.
    echo ---------------------------------Conversion Succesful--------------------------- 
09.
    move D:\VID\VIDEO_OLD\%Dateinamex% D:\VID\VIDEO_BACKUP\%Dateinamex% 
10.
) 

~Arano

zu langsam
Bitte warten ..
Mitglied: Skyemugen
18.07.2011 um 12:49 Uhr
Aloha,

also abgesehen davon, dass ich dich bitten möchte, code-Tags zu benutzen, würde ich auch darauf hinweisen, eventuell mit fliegenden Zollstöcken
" " zu arbeiten, sollten Leerzeichen im Dateinamen vorkommen.

Desweiteren setzt man kein echo off, wenn man auf Problemsuche ist ...

Und ebenso ist das Ganze set überflüssig, du kannst auch alles in der Schleife bearbeiten
01.
@echo off 
02.
 
03.
for %%i in ("D:\VID\VIDEO_OLD\*.*") do ( 
04.
D:\VID\waitclose.exe 100 "%%i" 
05.
echo bereit 
06.
D:\Convert\ffmpeg\bin\ffmpeg.exe -i "%%i" -t 30 -s qvga -t 30 "D:\VID\VIDEO_NEW\%%~ni.flv" 
07.
echo ---------------------------------Conversion Succesful--------------------------- 
08.
move "%%i" "D:\VID\VIDEO_BACKUP\%%~nxi" 
09.
10.
pause 
11.
goto :eof
Womit sich dein Problem in Luft auflösen sollte und du nicht extra setlocal enabledelayedexpansion zusammen mit !Dateinamex! nutzen musst.

greetz André

edit: toll da muss man mal eben was machen, lässt den Beitrag in der Bearbeitung offen und bekommt nur noch Platz #3 *gg*
Bitte warten ..
Mitglied: Arano
18.07.2011 um 13:06 Uhr
Hehe

edit: toll da muss man mal eben was machen, lässt den Beitrag in der Bearbeitung offen und bekommt nur noch Platz #3 *gg*
Hätte ich mir keinen Kaffee gemacht, wäre ich wohl auch ein Plätzchen weiter oben gewesen *g*
Dafür dürfte deines das Beste von allen dreien sein.

Oh, da sagst du aber was ! "delayedexpansion"
Habe kein Windows zu Hand, kann es also nicht mal eben so ausprobieren.
Aber jetzt wo du es sagst, wäre A0D0S0 mit meinem Batch nicht sehr weit gekommen weil die richtige Variabelauflösung ohne enabledelayedexpansion nicht funktioniert hätte - richtig ?


~Arano
Bitte warten ..
Mitglied: miniversum
18.07.2011 um 13:21 Uhr
Die genaue erklärung hab ich bei meiner Lösung mal unter den Tisch fallen lassen in der Hoffnung der Fragende fragt nach falls ihm was unklar ist.
Bitte warten ..
Mitglied: A0D0S0
18.07.2011 um 13:35 Uhr
ich habe jetzt die Verarbeitung in die Schleife reingenommen und alles funktioniert einwandfrei.
Danke für die Antworten

greez A0D0S0
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...