X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=youtube_dl%2Fdownloader%2Fhls.py;h=10b83c6b2665a035c33788bbf136dd511662bf3e;hb=e9bd0f772b28176e86cfe8c641b6281a96be2ee4;hp=b5a3e11676e72d070ec1a48c6483d0cc630c70a7;hpb=06e4874c997fb523bd9d8e675d1ec0e69ab501ed;p=youtube-dl.git diff --git a/youtube_dl/downloader/hls.py b/youtube_dl/downloader/hls.py index b5a3e1167..10b83c6b2 100644 --- a/youtube_dl/downloader/hls.py +++ b/youtube_dl/downloader/hls.py @@ -46,7 +46,16 @@ class HlsFD(FileDownloader): self._debug_cmd(args) - retval = subprocess.call(args) + proc = subprocess.Popen(args, stdin=subprocess.PIPE) + try: + retval = proc.wait() + except KeyboardInterrupt: + # subprocces.run would send the SIGKILL signal to ffmpeg and the + # mp4 file couldn't be played, but if we ask ffmpeg to quit it + # produces a file that is playable (this is mostly useful for live + # streams) + proc.communicate(b'q') + raise if retval == 0: fsize = os.path.getsize(encodeFilename(tmpfilename)) self.to_screen('\r[%s] %s bytes' % (args[0], fsize))