[downloader/hls] Ask ffmpeg to quit when interrupting youtube-dl with 'Ctrl+C' (#8252)
Otherwise the mp4 file can't be played.
This commit is contained in:
		
							parent
							
								
									7d4d9c526a
								
							
						
					
					
						commit
						9d90e7de03
					
				
					 1 changed files with 10 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -46,7 +46,16 @@ class HlsFD(FileDownloader):
 | 
			
		|||
 | 
			
		||||
        self._debug_cmd(args)
 | 
			
		||||
 | 
			
		||||
        retval = subprocess.call(args, stdin=subprocess.PIPE)
 | 
			
		||||
        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))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue