Browse Source

Use '--' to separate the file argument from the options when calling ffmpeg

This is to avoid a potential issue if the file name begins with a hyphen since ffmpeg will interpret it as an option
master
Idan Kamara 13 years ago
parent
commit
377086af3d
1 changed files with 2 additions and 2 deletions
  1. 4
      youtube-dl

4
youtube-dl

@ -2620,7 +2620,7 @@ class FFmpegExtractAudioPP(PostProcessor):
@staticmethod @staticmethod
def get_audio_codec(path): def get_audio_codec(path):
try: try:
handle = subprocess.Popen(['ffprobe', '-show_streams', path],
handle = subprocess.Popen(['ffprobe', '-show_streams', '--', path],
stderr=file(os.path.devnull, 'w'), stdout=subprocess.PIPE) stderr=file(os.path.devnull, 'w'), stdout=subprocess.PIPE)
output = handle.communicate()[0] output = handle.communicate()[0]
if handle.wait() != 0: if handle.wait() != 0:
@ -2638,7 +2638,7 @@ class FFmpegExtractAudioPP(PostProcessor):
@staticmethod @staticmethod
def run_ffmpeg(path, out_path, codec, more_opts): def run_ffmpeg(path, out_path, codec, more_opts):
try: try:
ret = subprocess.call(['ffmpeg', '-y', '-i', path, '-vn', '-acodec', codec] + more_opts + [out_path],
ret = subprocess.call(['ffmpeg', '-y', '-i', path, '-vn', '-acodec', codec] + more_opts + ['--', out_path],
stdout=file(os.path.devnull, 'w'), stderr=subprocess.STDOUT) stdout=file(os.path.devnull, 'w'), stderr=subprocess.STDOUT)
return (ret == 0) return (ret == 0)
except (IOError, OSError): except (IOError, OSError):

Loading…
Cancel
Save