News:

--

Main Menu

Exception :error: tokenize

Started by elmex, November 16, 2017, 11:25:28 PM

Previous topic - Next topic

elmex

Ich habe den Batch Script nach der "Anleitung" geschrieben, bekomme aber als Fehlermeldung "Exception :error: tokenize" und zwar für den ersten Befehl der nach raise kommt.

Wird der adm Teil zwischen raise und print auskommentiert wird das Video in Avidemux geladen.

#
# Load all the files in c:\tmp with .mp4 extension.
# That's it.
#
ext="m4v"
inputFolder="C:\Verzeichnis"

def convert(filein):   
    if(0 == adm.loadVideo(filein)):
        ui.displayError("oops","cannot load "+filein)
        raise
   # adm.loadVideo(filein)
   # adm.videoCodec("Copy")
   # adm.audioClearTracks()
   # adm.setSourceTrackLanguage(0,"unknown")
   # adm.audioAddTrack(0)
   # adm.audioCodec(0, "copy");
   # adm.audioSetDrc(0, 0)
   # adm.audioSetShift(0, 0,0)
   # adm.setContainer("MP4", "muxerType=0", "useAlternateMp3Tag=True")
   # adm.save(filein+".converted.mp4") # save the file    
    print("Done")
 

#
# Main
#
ui=Gui()
adm=Avidemux()
#

list=get_folder_content(inputFolder,ext)

if(list is None):
    raise
for i in list:
        convert(i)
print("Done")

elmex

Ok keine Antwort ist auch eine Antwort.

So wie Avidemux dokumentiert ist, ist eine Stapelverarbeitung nicht möglich.

eumagga0x2a

Die Dokumentation stammt größtenteils aus der Zeit von Avidemux 2.5 und ist völlig veraltet, aber in diesem Fall WFM. Das zweite adm.loadVideo(filein) ist überflüssig, Videos werden bereits in der Bedingung geladen.


ext="m4v"
inputFolder="/Users/eumagga/pytest"

def convert(filein):
    if(0 == adm.loadVideo(filein)):
        ui.displayError("oops","cannot load "+filein)
        raise
    adm.videoCodec("Copy")
    adm.audioClearTracks()
    adm.setSourceTrackLanguage(0,"unknown")
    adm.audioAddTrack(0)
    adm.audioCodec(0, "copy");
    adm.audioSetDrc(0, 0)
    adm.audioSetShift(0, 0,0)
    adm.setContainer("MP4", "muxerType=0", "useAlternateMp3Tag=True")
    adm.save(filein+".converted.mp4") # save the file
    print("Done")

#
# Main
#
ui=Gui()
adm=Avidemux()
#

list=get_folder_content(inputFolder,ext)

if(list is None):
    raise
for i in list:
        convert(i)
print("Done")

elmex

Quote from: eumagga0x2a on November 22, 2017, 07:20:23 AM
Die Dokumentation stammt größtenteils aus der Zeit von Avidemux 2.5 und ist völlig veraltet, aber in diesem Fall WFM.
Die tinypy müsste es erst mit Avidemux 2.6 geben. Die Youtube "Anleitung" stammt  https://www.youtube.com/watch?v=pxMeIU-ghXY vom 20.06.2016. Also noch recht aktuell. Bei mir funktioniert es weder mit Avidemux 2.6.14 noch mit 2.7.0. Muss zusätzlich zu Avidemux noch etwas installiert werden?

WMF musste ich erstmal googeln. Was für die funktioniert würde gerne wissen. Avidemux an sich oder schon der Batch Prozess.

Quote from: eumagga0x2a on November 22, 2017, 07:20:23 AMDas zweite adm.loadVideo(filein) ist überflüssig, Videos werden bereits in der Bedingung geladen.
Das weiß ich auch! Ich hab da alles rein geschmissen und rausgelassen die Fehlermeldung ist immer in der ersten Zeile nach raise.

eumagga0x2a

Quote from: elmex on November 23, 2017, 09:45:09 PM
Muss zusätzlich zu Avidemux noch etwas installiert werden?

Nein.

QuoteWMF musste ich erstmal googeln. Was für die funktioniert würde gerne wissen. Avidemux an sich oder schon der Batch Prozess.

Avidemux und das von mir gepostete Skript. Es lädt videos aus ~/pytest (es ist ein Mac) und speichert mittels des MP4 muxers mit dem Zusatz ".converted.mp4" im selben Verzeichnis.

elmex

Ich hab eine Lösung für mich gefunden. Ich benutze eine Batch Datei und ein Script.

Batch Datei
Quoteset avidemux="C:\Program Files\Avidemux 2.7 - 64 bits\avidemux.exe"
for %%f in (*.m4v) do %avidemux% --load "%%f" --run "C:\Folder\Copy.py" --save "%%~nf.mp4" --quit

tinypy Datei
Quoteadm = Avidemux()
adm.videoCodec("Copy")
adm.audioClearTracks()
adm.setSourceTrackLanguage(0,"unknown")
adm.audioAddTrack(0)
adm.audioCodec(0, "LavAAC", "bitrate=64");
adm.audioSetDrc(0, 0)
adm.audioSetShift(0, 0,0)
adm.setContainer("MP4", "muxerType=0", "useAlternateMp3Tag=True")



Quote from: eumagga0x2a
Avidemux und das von mir gepostete Skript. Es lädt videos aus ~/pytest (es ist ein Mac) und speichert mittels des MP4 muxers mit dem Zusatz ".converted.mp4" im selben Verzeichnis.
Wie gesagt, das Script funktioniert nicht in Windows 10 und mit avidemux 2.7.0

eumagga0x2a

Als Ordnertrenner im tinypy-Skript muss auch unter Windows der Schrägstrich "/" verwendet werden. Mit dieser Ergänzung funktioniert das Skript unter Windows (getestet unter Windows 7) einwandfrei, kein Bedarf für Batch.

jofi

Quote from: elmex on November 16, 2017, 11:25:28 PM
Ich habe den Batch Script nach der "Anleitung" geschrieben, bekomme aber als Fehlermeldung "Exception :error: tokenize" und zwar für den ersten Befehl der nach raise kommt.
Wird der adm Teil zwischen raise und print auskommentiert wird das Video in Avidemux geladen.

Ich hatte der selbe Fehler, auch wo ich der adm Teil eingefügt hatte.
(Entshuldigung, weiter auf English, zu schwierig auf Deutsch)
It comes from a mix between tabs and spaces in indenting the lines:
- the lines coming from the skeleton have spaces
- I added tabulations in the adm part (1 tab = 4 spaces, the same lenght, so invisible
Replacing all tabs by 4 spaces, and it works!