[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
sudo apt-get install \ libpcre3-dev libssl-dev \ libasound2-dev libfontconfig1-dev librtmp-dev libx264-dev libsdl2-dev
./configure \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --pid-path=/var/run/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --http-log-path=/var/log/nginx/access.log \ --http-client-body-temp-path=/var/cache/nginx/body \ --http-proxy-temp-path=/var/cache/nginx/proxy \ --http-fastcgi-temp-path=/var/cache/nginx/fastcgi \ --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \ --http-scgi-temp-path=/var/cache/nginx/scgi_temp \ --with-http_ssl_module \ --add-module=../nginx-rtmp-module
./configure \ --prefix=/usr/local/ffmpeg \ --enable-gpl \ --enable-version3 \ --enable-fontconfig \ --enable-libfreetype \ --enable-librtmp \ --enable-libx264 \ --enable-mmal \ --enable-omx-rpi \ --extra-libs=-ldlかつてはラジーパイ実機でFFmpegビルドとか重すぎ(苦笑)だったらしいのだが今は昔。make -j4とかすればどんどん捗る(要強制冷却)。
[Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/var/run/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true Nice=-10 [Install] WantedBy=multi-user.target
#
worker_processes 1;
user root staff;
events {
worker_connections 128;
}
rtmp {
server {
listen 1935;
chunk_size 16384;
buflen 1000ms;
exec_kill_signal term;
allow publish 127.0.0.0/8;
allow publish 192.168.0.0/16;
deny publish all;
allow play 127.0.0.0/8;
allow play 192.168.0.0/16;
deny play all;
application webcam {
live on;
exec_pull /usr/local/webcamhelper/nginx_rtmp_exec_pull_wrapper '$app' '$name';
}
}
}
#!/bin/bash
FFMPEG=/usr/local/ffmpeg/bin/ffmpeg
on_TERM(){
pkill -TERM -P $$
}
trap 'on_TERM' TERM
STEM=$(dirname $0)/rtmp
DEVICE=$(readlink -f $(cat "$STEM.$1.$2.device"))
$STEM.$1.$2.init $DEVICE
$FFMPEG -hide_banner $(cat $STEM.$1.$2.ffmpeg_arg0) -i $DEVICE $(cat $STEM.$1.$2.ffmpeg_arg1) -f flv "rtmp://localhost:1935/$1/$2" &
wait
/dev/v4l/by-id/*rtmp.{$app}.{$name}.init という名前で最初の接続の際)に呼ばれるシェルスクリプト(主にカメラ初期化用)を、
#!/bin/bash uvcdynctrl -d $1 -s Brightness * uvcdynctrl -d $1 -s Contrast * ...rtmp.{$app}.{$name}.ffmpeg_arg0 / rtmp.{$app}.{$name}.ffmpeg_arg1 という名前でFFMpegに渡すパラメータを書いておく。
-loglevel error -fflags nobuffer -rtbufsize *M -f v4l2 -video_size *x* -input_format rawvideo -framerate *
-filter_complex hqdn3d=3,drawtext=text=%{localtime}:fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSansCondensed-Bold.ttf:fontsize=32:fontcolor=white@1.0:shadowcolor=black@0.8:shadowx=3:shadowy=3:x=(w-text_w)/2:y=16,fps=*
-c:v h264_omx -b:v *M -g * -zerocopy 1
{$app} は上記の例だと webcam に、{$name} はわかりやすい名称や番号とかにする。あとアスタリスクになっているところは実際の機材や環境に合わせて適当に。カレンダー
フリーエリア
最新コメント
最新記事
プロフィール
ブログ内検索
最古記事
P R