Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Python: ffmpeg probleempje  (gelezen 1005 keer)

Offline BaukeP

  • Lid
Python: ffmpeg probleempje
« Gepost op: 2023/11/01, 23:19:02 »
Hallo,
Ik laat in python een cmd samenstellen:
cmd = '/usr/bin/ffmpeg -i '+infile+' -vn -an -scodec srt '+outfile
En dat lijkt goed te gaan, het commando dat met subprocess.call naar bash gaat:
'/usr/bin/ffmpeg -i "/mnt/Data/Downloads/Girl Wanted to get out of DIRT, so I Build Her an Amazing DRIVEWAY.en.vtt" -vn -an -scodec srt "/mnt/Data/Downloads/Girl Wanted to get out of DIRT, so I Build Her an Amazing DRIVEWAY.en.srt"' lijkt goed m.i.

Maar dan komt de melding:
FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/ffmpeg -i "/mnt/Data/Downloads/Girl Wanted to get out of DIRT, so I Build Her an Amazing DRIVEWAY.en.vtt" -vn -an -scodec srt "/mnt/Data/Downloads/Girl Wanted to get out of DIRT, so I Build Her an Amazing DRIVEWAY.en.srt"'

Maar welk file dan? Ik zit hier al een tijd mee te donderjagen (friesisme).

Graag wat hulp?
Bauke

Offline MKe

  • Lid
Re: Python: ffmpeg probleempje
« Reactie #1 Gepost op: 2023/11/02, 07:26:31 »
Posix houdt niet van spaties in paden . Ik vermoed dat dat daar je probleem zit.

Als je met files werkt in python is het altijd better om de path library te gebruiken om de paden te construeren.

Offline BaukeP

  • Lid
Re: Python: ffmpeg probleempje
« Reactie #2 Gepost op: 2023/11/02, 11:56:55 »
Bedankt MKe, maar dat is het dus niet.
Ik ga maar eens aan de slag met ffmpeg-python.

Bauke

Offline vanadium

  • Lid
Re: Python: ffmpeg probleempje
« Reactie #3 Gepost op: 2023/11/02, 13:40:31 »
Geen python specialist hier, maar moet je die quotes niet expliciet meegeven in de code die het commando aanmaakt?

Dus

cmd = '/usr/bin/ffmpeg -i " '+infile+'"  -vn -an -scodec srt "'+outfile+'"'

in plaats van

cmd = '/usr/bin/ffmpeg -i '+infile+' -vn -an -scodec srt '+outfile

Offline peer

  • Lid
Re: Python: ffmpeg probleempje
« Reactie #4 Gepost op: 2023/11/02, 14:17:43 »
ik dacht dat je in python geen commando's met spaties er in mee geven.  In het verleden heb ik wel een bash-opdrachten door ppython laten uitvoeren. Hiervoor gebruikte ik 'subprocess.popen'

Wat niet werkt is:
subprocess.popen("ls -a")wat wel werkt is:
subprocess.popen(["ls", "-a"])
Je moet hiervoor het commando opsplitsen en in een list zetten. Wellicht werkt het met subprocess.call ook zo.