diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/istream.sh | 11 | ||||
-rwxr-xr-x | bin/session.php | 24 |
2 files changed, 28 insertions, 7 deletions
diff --git a/bin/istream.sh b/bin/istream.sh index 438e322..b54417a 100755 --- a/bin/istream.sh +++ b/bin/istream.sh @@ -12,6 +12,7 @@ SEGWIN=$7 # Amount of Segments to produce FFPATH=$8 SEGMENTERPATH=$9 SESSION=${10} +FFMPEGLOG=${11} if [ $# -eq 0 ] then @@ -19,6 +20,12 @@ echo "Format is : ./istream.sh source video_rate audio_rate audio_channels 480x3 exit 1 fi +# Log +if [ -z "$FFMPEGLOG" ] +then + FFMPEGLOG="/dev/null" +fi + ############################################################# # start dumping the TS via Streamdev into a pipe for ffmpeg # and store baseline 3.0 mpegts to outputfile @@ -29,8 +36,8 @@ cd ../ram/$SESSION 2> /dev/null rm stream*.ts -2> /dev/null $FFPATH -i "$STREAM" -deinterlace -f mpegts -acodec libmp3lame -ab $ARATE -ac $ACHANNELS -s $XY -vcodec libx264 -b $VRATE -flags +loop \ +$FFPATH -i "$STREAM" -deinterlace -f mpegts -acodec libmp3lame -ab $ARATE -ac $ACHANNELS -s $XY -vcodec libx264 -b $VRATE -flags +loop \ -cmp \+chroma -partitions +parti4x4+partp8x8+partb8x8 -subq 5 -trellis 1 -refs 1 -coder 0 -me_range 16 -keyint_min 25 \ -sc_threshold 40 -i_qfactor 0.71 -bt $VRATE -maxrate $VRATE -bufsize $VRATE -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 \ - -qmin 10 -qmax 51 -qdiff 4 -level 30 -g 30 -async 2 -threads 4 - | \ + -qmin 10 -qmax 51 -qdiff 4 -level 30 -g 30 -async 2 -threads 4 - 2>$FFMPEGLOG | \ $SEGMENTERPATH - $SEGDUR stream stream.m3u8 $HTTP_PATH$SESSION/ $SEGWIN & diff --git a/bin/session.php b/bin/session.php index 5b9464b..950c855 100755 --- a/bin/session.php +++ b/bin/session.php @@ -2,7 +2,7 @@ function sessioncreate($type, $url, $mode) { - global $httppath, $ffmpegpath, $segmenterpath, $quality, $maxencodingprocesses; + global $httppath, $ffmpegpath, $segmenterpath, $quality, $maxencodingprocesses, $ffmpegdebug, $ffmpegdebugfile; addlog("Creating a new session for \"" .$url ."\" (" .$type .", " .$mode .")"); @@ -64,23 +64,31 @@ function sessioncreate($type, $url, $mode) $channame = ""; break; } + // Create logo if ($type == 'vid') generatelogo($type, $url, '../ram/' .$session .'/thumb.png'); else generatelogo($type, $channame, '../ram/' .$session .'/thumb.png'); + + // FFMPEG debug + if ($ffmpegdebug) + $ffdbg = $ffmpegdebugfile; + else + $ffdbg = ""; + // Start encoding $url = str_replace("\\'", "'", $url); switch ($type) { case 'tv': - $cmd = "export SHELL=\"/bin/sh\";printf \"./istream.sh \\\"" .$url ."\\\" " .$qparams ." " .$httppath ." 2 " .$ffmpegpath ." " .$segmenterpath ." " .$session ." \" | at now"; + $cmd = "export SHELL=\"/bin/sh\";printf \"./istream.sh \\\"" .$url ."\\\" " .$qparams ." " .$httppath ." 2 " .$ffmpegpath ." " .$segmenterpath ." " .$session ." \\\"" .$ffdbg ."\\\" \" | at now"; break; case 'rec': - $cmd = "export SHELL=\"/bin/sh\";printf \"cat \\\"" .$url ."\\\"/0* | ./istream.sh - " .$qparams ." " .$httppath ." 1260 " .$ffmpegpath ." " .$segmenterpath ." " .$session ." \" | at now"; + $cmd = "export SHELL=\"/bin/sh\";printf \"cat \\\"" .$url ."\\\"/0* | ./istream.sh - " .$qparams ." " .$httppath ." 1260 " .$ffmpegpath ." " .$segmenterpath ." " .$session ." \\\"" .$ffdbg ."\\\" \" | at now"; break; case 'vid': - $cmd = "export SHELL=\"/bin/sh\";printf \"./istream.sh \\\"" .$url ."\\\" " .$qparams ." " .$httppath ." 1260 " .$ffmpegpath ." " .$segmenterpath ." " .$session ." \" | at now"; + $cmd = "export SHELL=\"/bin/sh\";printf \"./istream.sh \\\"" .$url ."\\\" " .$qparams ." " .$httppath ." 1260 " .$ffmpegpath ." " .$segmenterpath ." " .$session ." \\\"" .$ffdbg ."\\\" \" | at now"; break; default: $cmd = ""; @@ -347,6 +355,9 @@ function sessiongetlist() if ($type == "none") continue; + // Get status + $status = getstreamingstatus($session); + $newsession = array(); $newsession['session'] = substr($session, strlen("session")); $newsession['type'] = $type; @@ -355,8 +366,11 @@ function sessiongetlist() else $newsession['name'] = $channame; + if ($status['status'] == "error") + $newsession['name'] = "Error: " .$newsession['name']; + // Check if encoding - if (file_exists('../ram/' .$session .'/segmenter.pid')) + if (file_exists('../ram/' .$session .'/segmenter.pid') && ($status['status'] != "error")) $newsession['encoding'] = 1; else $newsession['encoding'] = 0; |