mirror of
https://github.com/ytdl-org/youtube-dl.git
synced 2024-11-22 18:22:21 +00:00
[postprocessor/ffmpeg] Always use the 'file:' protocol for filenames (fixes #6874)
If the filename contains ':' it is interpreted as a protocol. It also handles filenames starting with '-'.
This commit is contained in:
parent
131d05033b
commit
8a7bbd1606
2 changed files with 9 additions and 6 deletions
|
@ -31,7 +31,7 @@ class HlsFD(FileDownloader):
|
||||||
args = [
|
args = [
|
||||||
encodeArgument(opt)
|
encodeArgument(opt)
|
||||||
for opt in (ffpp.executable, '-y', '-i', url, '-f', 'mp4', '-c', 'copy', '-bsf:a', 'aac_adtstoasc')]
|
for opt in (ffpp.executable, '-y', '-i', url, '-f', 'mp4', '-c', 'copy', '-bsf:a', 'aac_adtstoasc')]
|
||||||
args.append(encodeFilename(tmpfilename, True))
|
args.append(encodeFilename(ffpp._ffmpeg_filename_argument(tmpfilename), True))
|
||||||
|
|
||||||
self._debug_cmd(args)
|
self._debug_cmd(args)
|
||||||
|
|
||||||
|
|
|
@ -135,7 +135,10 @@ class FFmpegPostProcessor(PostProcessor):
|
||||||
|
|
||||||
files_cmd = []
|
files_cmd = []
|
||||||
for path in input_paths:
|
for path in input_paths:
|
||||||
files_cmd.extend([encodeArgument('-i'), encodeFilename(path, True)])
|
files_cmd.extend([
|
||||||
|
encodeArgument('-i'),
|
||||||
|
encodeFilename(self._ffmpeg_filename_argument(path), True)
|
||||||
|
])
|
||||||
cmd = ([encodeFilename(self.executable, True), encodeArgument('-y')] +
|
cmd = ([encodeFilename(self.executable, True), encodeArgument('-y')] +
|
||||||
files_cmd +
|
files_cmd +
|
||||||
[encodeArgument(o) for o in opts] +
|
[encodeArgument(o) for o in opts] +
|
||||||
|
@ -155,10 +158,10 @@ class FFmpegPostProcessor(PostProcessor):
|
||||||
self.run_ffmpeg_multiple_files([path], out_path, opts)
|
self.run_ffmpeg_multiple_files([path], out_path, opts)
|
||||||
|
|
||||||
def _ffmpeg_filename_argument(self, fn):
|
def _ffmpeg_filename_argument(self, fn):
|
||||||
# ffmpeg broke --, see https://ffmpeg.org/trac/ffmpeg/ticket/2127 for details
|
# Always use 'file:' because the filename may contain ':' (ffmpeg
|
||||||
if fn.startswith('-'):
|
# interprets that as a protocol) or can start with '-' (-- is broken in
|
||||||
return './' + fn
|
# ffmpeg, see https://ffmpeg.org/trac/ffmpeg/ticket/2127 for details)
|
||||||
return fn
|
return 'file:' + fn
|
||||||
|
|
||||||
|
|
||||||
class FFmpegExtractAudioPP(FFmpegPostProcessor):
|
class FFmpegExtractAudioPP(FFmpegPostProcessor):
|
||||||
|
|
Loading…
Reference in a new issue