Popen to get stdout and stderr for ffmpeg - No such file or directory ?

goldtech goldtech at worldpost.com
Mon Apr 18 19:07:46 EDT 2011


Hi,

Trying to learn how to run a linux command and get the stdout and
stderr. I'm trying the following:

>>> cmd3 = r'ffmpeg -i /home/giga/Desktop/Guitar1.flv'
>>> p = Popen(cmd3, stdout=PIPE, stderr=PIPE)

Traceback (most recent call last):
  File "<pyshell#73>", line 1, in <module>
    p = Popen(cmd3, stdout=PIPE, stderr=PIPE)
  File "/usr/lib/python2.6/subprocess.py", line 623, in __init__
    errread, errwrite)
  File "/usr/lib/python2.6/subprocess.py", line 1141, in
_execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

But:

>>> if os.path.exists(r'/home/giga/Desktop/Guitar1.flv'):
	print "exist"

exist
>>>

And just running ffmpeg alone seems as expected:

>>> cmd2=r'ffmpeg'
>>> p = Popen(cmd2, stdout=PIPE, stderr=PIPE)
>>> stdout, stderr = p.communicate()
>>> stdout
'Hyper fast Audio and Video encoder\nusage: ffmpeg [options] [[infile
options] -i infile]... {[outfile options] outfile}...\n\n'
>>> stderr
"FFmpeg version git-N-29152-g0ba8485, Copyright (c) 2000-2011 the
FFmpeg developers\n  built on Apr 16 2011 16:40:56 with gcc 4.4.5\n
configuration: --enable-gpl ...snip...

Also if I run the exact command (cmd3) in the terminal it works OK.
Why is it not finding the file? Thanks, help appreciated.



More information about the Python-list mailing list