Quote from: eumagga0x2a on March 26, 2024, 08:55:20 PMThe following script will add 1s fade-in and 3s fade-out for a selection of at least 4 seconds duration:adm = Avidemux()
ed = Editor()
gui = Gui()
if not adm.isFileOpen():
gui.displayError("1s fade-in + 3s fade-out", "No video loaded")
return
# require at least 4 seconds to be selected
if (adm.markerA < 0):
adm.markerA = 0
if (adm.markerB < 0):
adm.markerB = 0
if (adm.markerB > ed.getVideoDuration()):
adm.markerB = ed.getVideoDuration()
if (adm.markerB - adm.markerA < 4 * 1000 * 1000):
gui.displayError("1s fade-in + 3s fade-out", "Selection too short, must be at least 4 seconds")
return
fadeInDuration = 1000 # in ms
fadeOutDuration = 3 * 1000 # in ms
fadeInStart = int(adm.markerA / 1000)
fadeOutStart = int((adm.markerB - 3 * 1000 * 1000) / 1000)
adm.addVideoFilter("fadeToBlack", "startFade=" + str(fadeInStart), "endFade=" + str(fadeInStart + fadeInDuration), "inOut=True", "toBlack=True")
adm.addVideoFilter("fadeToBlack", "startFade=" + str(fadeOutStart), "endFade=" + str(fadeOutStart + fadeOutDuration), "inOut=False", "toBlack=True")
gui.displayInfo("Done", "Fade-in and fade-out added. Select video codec other than \"Copy\" to re-encode video")
Save it as a text file with ".py" as extension. Place it e.g. into %appdata%\avidemux\custom directory to be listed in the "Custom" menu upon restart of Avidemux. You should update to the latest 2.8.2 nightly, I don't think that isFileOpen() method had been added to pyAvidemux class already in 2.8.1. In any case, you must switch from copy mode to an encoder to use filters.
Quote from: sark on March 26, 2024, 08:42:56 PMYou must encode to apply a filter.
Select an encoder from the drop down list (commonly Mpeg4 AVC (x264) and the Filter button will become active.
There is an option to do exactly as you require.
adm = Avidemux()
ed = Editor()
gui = Gui()
if not adm.isFileOpen():
gui.displayError("1s fade-in + 3s fade-out", "No video loaded")
return
# require at least 4 seconds to be selected
if (adm.markerA < 0):
adm.markerA = 0
if (adm.markerB < 0):
adm.markerB = 0
if (adm.markerB > ed.getVideoDuration()):
adm.markerB = ed.getVideoDuration()
if (adm.markerB - adm.markerA < 4 * 1000 * 1000):
gui.displayError("1s fade-in + 3s fade-out", "Selection too short, must be at least 4 seconds")
return
fadeInDuration = 1000 # in ms
fadeOutDuration = 3 * 1000 # in ms
fadeInStart = int(adm.markerA / 1000)
fadeOutStart = int((adm.markerB - 3 * 1000 * 1000) / 1000)
adm.addVideoFilter("fadeToBlack", "startFade=" + str(fadeInStart), "endFade=" + str(fadeInStart + fadeInDuration), "inOut=True", "toBlack=True")
adm.addVideoFilter("fadeToBlack", "startFade=" + str(fadeOutStart), "endFade=" + str(fadeOutStart + fadeOutDuration), "inOut=False", "toBlack=True")
gui.displayInfo("Done", "Fade-in and fade-out added. Select video codec other than \"Copy\" to re-encode video")
Quote from: eumagga0x2a on March 26, 2024, 11:24:09 AM"Taille du fichier: 756 Octets".Missed bytes (instead of megabytes) in the translation. Lav58.29.100 indicated an older version.