40 lines
848 B
Bash
40 lines
848 B
Bash
|
#!/bin/bash -e
|
||
|
|
||
|
#####################################################
|
||
|
#
|
||
|
# This script will stream a video to an RTMP ingestion
|
||
|
# server that accepts H264 encoding. Can be used for
|
||
|
# live streaming services.
|
||
|
#
|
||
|
# Usage: bash stream/rtmp.sh <input video> <rtmp url>
|
||
|
#
|
||
|
#####################################################
|
||
|
|
||
|
INPUT="${1}"
|
||
|
RTMP="${2}"
|
||
|
|
||
|
# Check if input and output arguments are supplied
|
||
|
if [ "${INPUT}" == "" ] || [ "${OUTPUT}" == "" ]; then
|
||
|
echo "Please provide input and output files as your first and second arguments"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Check if RTMP url is provided
|
||
|
if [[ "${RTMP}" == "" ]]; then
|
||
|
echo "Please provide an RTMP url"
|
||
|
exit 2
|
||
|
fi
|
||
|
|
||
|
ffmpeg -re -i "${INPUT}"-c:v libx264 \
|
||
|
-preset veryfast \
|
||
|
-maxrate 2048k \
|
||
|
-bufsize 4096k \
|
||
|
-pix_fmt yuv420p \
|
||
|
-g 60 \
|
||
|
-c:a aac \
|
||
|
-b:a 190k \
|
||
|
-ac 2 \
|
||
|
-ar 44100 \
|
||
|
-f flv \
|
||
|
"${RTMP}"
|