From d2c3bdfed3eac340d69b22584bc269318fe77655 Mon Sep 17 00:00:00 2001 From: AlexPresso Date: Mon, 16 May 2022 15:33:52 +0200 Subject: [PATCH] WIP GStreamer Wrapper --- ffmpeg-wrapper.sh | 30 +++++++++++++----------------- gst-wrapper.sh | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 17 deletions(-) create mode 100644 gst-wrapper.sh diff --git a/ffmpeg-wrapper.sh b/ffmpeg-wrapper.sh index 563843c..603027d 100644 --- a/ffmpeg-wrapper.sh +++ b/ffmpeg-wrapper.sh @@ -5,53 +5,49 @@ ######################### pid=$$ -childpid="" -defaultargs=(${@:3}) +defaultargs=($@) hlsslice=${@: -1} hlsroot=${hlsslice::-14} stderrfile="/tmp/ffmpeg-$pid.stderr" +logfile="/tmp/ffmpeg.log" ######################### # UTILS ######################### function log() { - echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$1] $2" >> /tmp/ffmpeg.log + echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$1] $2" >> $logfile +} +function newline() { + echo "" >> $logfile } function info() { log "INFO" "$1" } -function killchild() { +function endprocess() { + info "========================================[end ffmpeg $pid]" + newline rm $stderrfile - - if [[ "$childpid" -ne "" ]]; then - info "Killed child ($childpid)" - kill -TERM "$childpid" 2>/dev/null - fi } ######################### # ENTRYPOINT ######################### -trap killchild SIGTERM +trap endprocess SIGTERM movie=$(cat "$hlsroot/video_metadata" | jq -r ".path") -info "========================================[$pid]" +newline +info "========================================[start ffmpeg $pid]" info "MOVIE: $movie" info "HLS_ROOT: $hlsroot" info "DEFAULT_ARGS: ${defaultargs[*]}" declare -a args=( - "-i" "$movie" "${defaultargs[@]}" ) info "ARGS: ${args[*]}" -/var/packages/ffmpeg/target/bin/ffmpeg "${args[@]}" 2> $stderrfile & - -childpid=$! -wait $childpid - +/var/packages/ffmpeg/target/bin/ffmpeg "${args[@]}" 2> $stderrfile diff --git a/gst-wrapper.sh b/gst-wrapper.sh new file mode 100644 index 0000000..a361694 --- /dev/null +++ b/gst-wrapper.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +######################### +# VARS +######################### + +pid=$$ +defaultargs=($@) +hlsslice=${@: -1} +hlsroot=${hlsslice::-14} +stderrfile="/tmp/gstlaunch-$pid.stderr" +logfile="/tmp/ffmpeg.log" + +######################### +# UTILS +######################### + +function log() { + echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$1] $2" >> $logfile +} +function newline() { + echo "" >> $logfile +} +function info() { + log "INFO" "$1" +} + +function endprocess() { + info "========================================[end gst $pid]" + newline + rm $stderrfile +} + +######################### +# ENTRYPOINT +######################### + +trap endprocess SIGTERM + +newline +info "========================================[start gst $pid]" +info "GST_ARGS: ${defaultargs[*]}" + +/var/packages/CodecPack/target/pack/bin/gst-launch-1.0.orig "${defaultargs[@]}" 2> $stderrfile