Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions installer/kill_gstreamer.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#!/bin/bash

# Script to kill all GStreamer processes
# This will stop all video encoders and audio encoders

echo "Stopping all GStreamer processes..."

# Function to log messages
log_message() {
echo "$(date +"%Y-%m-%d %H:%M:%S") - $1"
}

# Kill all gst-launch processes
log_message "Killing gst-launch-1.0 processes..."
pkill -f "gst-launch-1.0"

# Kill any remaining gstreamer processes
log_message "Killing any remaining GStreamer processes..."
pkill -f "gstreamer"
pkill -f "gst-"

# Kill specific encoder scripts if they're running
log_message "Killing encoder scripts..."
pkill -f "video_storage_encoder_with_audio.sh"
pkill -f "video_software_encoder.sh"
pkill -f "video_combined_storage_and_stream.sh"
pkill -f "audio_encoder.sh"

# Wait a moment for processes to terminate
sleep 2

# Check if any GStreamer processes are still running
REMAINING_GST=$(pgrep -f "gst-launch-1.0" | wc -l)
REMAINING_SCRIPTS=$(pgrep -f "encoder.sh" | wc -l)

if [ $REMAINING_GST -eq 0 ] && [ $REMAINING_SCRIPTS -eq 0 ]; then
log_message "All GStreamer processes stopped successfully."
else
log_message "Warning: Some processes may still be running. Attempting force kill..."

# Force kill any remaining processes
pkill -9 -f "gst-launch-1.0"
pkill -9 -f "gstreamer"
pkill -9 -f "encoder.sh"

sleep 1

# Final check
FINAL_GST=$(pgrep -f "gst-launch-1.0" | wc -l)
FINAL_SCRIPTS=$(pgrep -f "encoder.sh" | wc -l)

if [ $FINAL_GST -eq 0 ] && [ $FINAL_SCRIPTS -eq 0 ]; then
log_message "All processes forcefully terminated."
else
log_message "Error: Some processes could not be terminated. Manual intervention may be required."
log_message "Remaining GStreamer processes:"
pgrep -f "gst-launch-1.0" -l
log_message "Remaining encoder scripts:"
pgrep -f "encoder.sh" -l
fi
fi

log_message "GStreamer cleanup completed."
19 changes: 7 additions & 12 deletions installer/sc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1289,6 +1289,7 @@ After=network.target

[Service]
Type=simple
ExecStartPre=/bin/sleep 10
ExecStart=$SCRIPT_PATH
Restart=on-failure
RestartSec=10
Expand All @@ -1307,7 +1308,7 @@ EOF
echo -e "${YELLOW}[⋯]${NC} Enabling video service to start on boot..."
systemctl enable skycore-video.service

# Start the service

echo -e "${YELLOW}[⋯]${NC} Starting video service..."
systemctl start skycore-video.service

Expand Down Expand Up @@ -1407,11 +1408,8 @@ while true; do
location="\$OUTPUT_DIR/\${TIMESTAMP}_segment_%05d.ts" \\
rtspsrc location=rtsp://${TARGET_IP}:8554/main.264 latency=50 drop-on-latency=true ! \\
rtph264depay ! h264parse ! \\
nvv4l2decoder enable-max-performance=1 disable-dpb=1 ! \\
nvvidconv ! \\
video/x-raw,format=I420 ! \\
videorate max-rate=25 ! \\
x264enc tune=zerolatency speed-preset=ultrafast bitrate=2500 key-int-max=15 bframes=0 ! \\
avdec_h264 ! videoconvert ! \\
x264enc speed-preset=veryfast bitrate=12000 key-int-max=50 bframes=0 ! \\
h264parse config-interval=1 ! \\
queue max-size-buffers=100 max-size-time=1000000000 ! \\
mux. \\
Expand All @@ -1427,11 +1425,8 @@ while true; do
timeout 3630 gst-launch-1.0 -e \\
rtspsrc location=rtsp://${TARGET_IP}:8554/main.264 latency=50 drop-on-latency=true ! \\
rtph264depay ! h264parse ! \\
nvv4l2decoder enable-max-performance=1 disable-dpb=1 ! \\
nvvidconv ! \\
video/x-raw,format=I420 ! \\
videorate max-rate=25 ! \\
x264enc tune=zerolatency speed-preset=ultrafast bitrate=2500 key-int-max=15 bframes=0 ! \\
avdec_h264 ! videoconvert ! \\
x264enc speed-preset=veryfast bitrate=12000 key-int-max=50 bframes=0 ! \\
h264parse config-interval=1 ! \\
queue max-size-buffers=100 max-size-time=1000000000 ! \\
mpegtsmux ! \\
Expand Down Expand Up @@ -1479,6 +1474,7 @@ After=skycore-audio.service

[Service]
Type=simple
ExecStartPre=/bin/sleep 15
ExecStart=$SCRIPT_PATH
Restart=on-failure
RestartSec=10
Expand All @@ -1499,7 +1495,6 @@ EOF
echo -e "${YELLOW}[⋯]${NC} Enabling video storage service to start on boot..."
systemctl enable skycore-video-storage.service

# Start the service
echo -e "${YELLOW}[⋯]${NC} Starting video storage service..."
systemctl start skycore-video-storage.service

Expand Down
7 changes: 3 additions & 4 deletions installer/video_encoders/video_software_encoder.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@
gst-launch-1.0 -e \
rtspsrc location=rtsp://192.168.144.25:8554/main.264 latency=50 drop-on-latency=true ! \
rtph264depay ! h264parse ! \
nvv4l2decoder enable-max-performance=1 disable-dpb=1 ! \
video/x-raw\(memory:NVMM\),format=NV12 ! \
nvvidconv ! \
avdec_h264 ! \
videoconvert ! \
video/x-raw,format=I420 ! \
videorate max-rate=25 ! \
x264enc tune=zerolatency speed-preset=ultrafast bitrate=2500 key-int-max=15 bframes=0 ! \
h264parse config-interval=1 ! \
video/x-h264,stream-format=byte-stream,alignment=au ! \
udpsink host=127.0.0.1 port=5010 sync=false
udpsink host=127.0.0.1 port=5010 sync=false
14 changes: 4 additions & 10 deletions installer/video_encoders/video_storage_encoder_with_audio.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,8 @@ while true; do
location="$OUTPUT_DIR/${TIMESTAMP}_segment_%05d.ts" \
rtspsrc location=rtsp://192.168.144.25:8554/main.264 latency=50 drop-on-latency=true ! \
rtph264depay ! h264parse ! \
nvv4l2decoder enable-max-performance=1 disable-dpb=1 ! \
nvvidconv ! \
video/x-raw,format=I420 ! \
videorate max-rate=25 ! \
x264enc tune=zerolatency speed-preset=ultrafast bitrate=2500 key-int-max=15 bframes=0 ! \
avdec_h264 ! videoconvert ! \
x264enc speed-preset=veryfast bitrate=12000 key-int-max=50 bframes=0 ! \
h264parse config-interval=1 ! \
queue max-size-buffers=100 max-size-time=1000000000 ! \
mux. \
Expand All @@ -71,11 +68,8 @@ while true; do
timeout 3630 gst-launch-1.0 -e \
rtspsrc location=rtsp://192.168.144.25:8554/main.264 latency=50 drop-on-latency=true ! \
rtph264depay ! h264parse ! \
nvv4l2decoder enable-max-performance=1 disable-dpb=1 ! \
nvvidconv ! \
video/x-raw,format=I420 ! \
videorate max-rate=25 ! \
x264enc tune=zerolatency speed-preset=ultrafast bitrate=2500 key-int-max=15 bframes=0 ! \
avdec_h264 ! videoconvert ! \
x264enc speed-preset=veryfast bitrate=12000 key-int-max=50 bframes=0 ! \
h264parse config-interval=1 ! \
queue max-size-buffers=100 max-size-time=1000000000 ! \
mpegtsmux ! \
Expand Down