summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/istream.sh11
-rwxr-xr-xbin/session.php24
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;