All pastes #509885 Raw Edit

kill lingering ffmpeg procs

public text v1 · immutable
·published 2007-05-25 17:56 UTC
rendered paste body
Index: mythweb/modules/stream/handler.pl
===================================================================
--- mythweb/modules/stream/handler.pl	(revision 13500)
+++ mythweb/modules/stream/handler.pl	(working copy)
@@ -20,12 +20,12 @@
 
 # Shutdown cleanup, of various types
     $SIG{'TERM'} = \&shutdown_handler;
+    $SIG{'PIPE'} = \&shutdown_handler;
     END {
         shutdown_handler();
     }
     sub shutdown_handler {
-        kill(9, $ffmpeg_pid) if ($ffmpeg_pid);
-        usleep(100000) while (wait > 0);
+        kill(1, $ffmpeg_pid) if ($ffmpeg_pid);
     }
 
 # Which show are we streaming?
@@ -129,7 +129,9 @@
     }
     elsif ($ENV{'REQUEST_URI'} =~ /\.flv$/i) {
     # Print the movie
-        $ffmpeg_pid = open(DATA, "/usr/bin/ffmpeg -y -i $filename -s 320x240 -r 24 -f flv -ac 2 -ar 11025 -ab 64k -b 256k /dev/stdout 2>/dev/null |");
+        my @ffmpeg_cmd = ('/usr/bin/ffmpeg', '-v', '-1', '-y', '-i', "$filename", '-s', '320x240', '-r', '24',
+			  '-f', 'flv', '-ac', '2', '-ar', '11025', '-ab', '64k', '-b', '256k', '/dev/stdout');
+        $ffmpeg_pid = open(DATA, '-|', @ffmpeg_cmd);
         unless ($ffmpeg_pid) {
             print header(),
                   "Can't do ffmpeg:  $!";