initial commit
This commit is contained in:
commit
c3b94b7106
91 changed files with 56958 additions and 0 deletions
96
scripts/start_video
Executable file
96
scripts/start_video
Executable file
|
@ -0,0 +1,96 @@
|
|||
#!/bin/bash
|
||||
|
||||
trim() {
|
||||
local var=$@
|
||||
var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters
|
||||
var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters
|
||||
echo -n "$var"
|
||||
}
|
||||
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
IP=`ip route get 8.8.8.8 | awk 'NR==1 {print $NF}'`
|
||||
VIDEO_DEVICE=`trim \`v4l2-ctl --list-devices | grep \/dev\/video | head -n 1\``
|
||||
|
||||
# bail if no valid video devices
|
||||
if [ -z "$VIDEO_DEVICE" ]; then
|
||||
echo "error: could not find a valid v4l device"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# run as sudo if necessary
|
||||
#[ "$(whoami)" != "root" ] && exec sudo -- "$0" "$@"
|
||||
|
||||
# at this point we should be root
|
||||
echo "operating on video device $VIDEO_DEVICE"
|
||||
|
||||
# touch log
|
||||
touch video.log
|
||||
echo "" >> video.log
|
||||
echo "*** BEGINNING RUN AT `date` ***" >> video.log
|
||||
echo "" >> video.log
|
||||
|
||||
# configure v4l2
|
||||
sudo v4l2-ctl --device=$VIDEO_DEVICE --set-fmt-video=width=800,height=600,pixelformat=1 >>video.log 2>&1
|
||||
|
||||
# set mic volume
|
||||
amixer -c 1 sset Mic,0 80%,80% unmute cap >>video.log 2>&1
|
||||
|
||||
# now stream
|
||||
echo "stream is available as http://$IP:8080/"
|
||||
echo "log file is available as video.log"
|
||||
|
||||
# working, video only
|
||||
#cvlc \
|
||||
#v4l2://$VIDEO_DEVICE:chroma=MJPG:width=800:height=600 \
|
||||
#--sout '#standard{access=http,mux=ts,dst=:8080,name=stream,mime=video/ts}' \
|
||||
#-vvv \
|
||||
#>>video.log 2>&1
|
||||
|
||||
# working, video+audio with vlc, audio-only with mplayer*
|
||||
cvlc \
|
||||
v4l2://$VIDEO_DEVICE:chroma=MJPG:width=800:height=600 \
|
||||
:input-slave="alsa://hw:1,0" \
|
||||
--sout '#transcode{acodec=a52,ab=32}:http{mux=ts,dst=:8080,name=stream}' \
|
||||
-vvv \
|
||||
>>video.log 2>&1
|
||||
|
||||
# gstraemer version
|
||||
#gst-launch-1.0 -v v4l2src \
|
||||
#! "image/jpeg,width=320,height=240,framerate=30/1" \
|
||||
#! multipartmux \
|
||||
#! tcpserversink host=127.0.0.1 port=5000 sync=false alsasrc device=hw:1 \
|
||||
#! audioconvert ! audioresample \
|
||||
#! 'audio/x-raw,format=S16LE,channels=1,layout=interleaved' \
|
||||
#! udpsink host=127.0.0.1 port=5001
|
||||
#! 'audio/x-raw-int,rate=8000,width=16,channels=1' \
|
||||
|
||||
# attempt at using mp4v
|
||||
#cvlc \
|
||||
#v4l2://$VIDEO_DEVICE:chroma=MJPG:width=800:height=600 \
|
||||
#:input-slave="alsa://hw:1,0" \
|
||||
#--sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:standard{access=http,mux=ts,dst=:8080}' \
|
||||
#-vvv \
|
||||
#>>video.log 2>&1
|
||||
|
||||
# attempt at using x264
|
||||
#cvlc v4l2://$VIDEO_DEVICE:chroma=YUY2:width=800:height=600 :input-slave="alsa://hw:1,0" --sout '#transcode{vcodec=h264,vb=1024,fps=25,width=800,height=600,venc=x264{profile=baseline,level=1},acodec=mp3,ab=128,channels=2,samplerate=48000}:http{dst=:8080,mux=ts}' -vvv
|
||||
|
||||
# attempt at using webm
|
||||
#cvlc \
|
||||
#v4l2://$VIDEO_DEVICE:chroma=YUY2:width=800:height=600 \
|
||||
#:input-slave="alsa://hw:1,0" \
|
||||
#--sout '#transcode{vcodec=VP80,vb=1000}:std{access=http{mime=video/webm},mux=webm,dst=:8080}' \
|
||||
#-vvv \
|
||||
#>>video.log 2>&1
|
||||
|
||||
# attempt at using ogg
|
||||
#cvlc \
|
||||
#v4l2://$VIDEO_DEVICE:chroma=YUY2:width=800:height=600 \
|
||||
#:input-slave="alsa://hw:1,0" \
|
||||
#--sout '#transcode{vcodec=theo,vb=2000}:std{access=http{mime=video/ogg},mux=ogg,dst=:8080}' \
|
||||
#-vvv \
|
||||
#>>video.log 2>&1
|
||||
|
||||
#cvlc v4l2://$VIDEO_DEVICE:chroma=h264:width=1280:height=720 :input-slave="alsa://hw:1,0" --sout '#transcode{acodec=a52,ab=32}:http{mux=ts,dst=:8080,name=stream,mime=video/ts}' -vvv
|
||||
|
||||
#new stream broadcast enabled input "http://192.168.0.205:8001/1:0:1:6E2E:431:1:C00000:0:0:0:" output #transcode{vcodec=h264,vb=1024,fps=25,width=800,height=480,venc=x264{profile=baseline,level=1},acodec=mp3,ab=128,channels=2,samplerate=48000}:http{dst=:8080/stream.ts}
|
Loading…
Add table
Add a link
Reference in a new issue