最新の低コストIPカメラの主な問題は何ですか?あなたはそれらをあなたのサイトに単に追加することはできません!ブラウザが理解するのとはまったく異なる形式でビデオをレンダリングします。はい、もちろん、カメラに直接アクセスできます(多くの場合、IEを使用する場合のみ)。多くのモデルには「クラウド」があります。しかし、問題は残っています-単純な写真のように、サイトにカメラを置いて配置することはできません!
オープンソースソリューションを含む、さまざまなベンダーのIPカメラからのブロードキャストを整理するための多くのソリューションを確認しました。ほとんどの場合、1つの欠点があります。これは、私にとって非常に重要です。観客がいない場合でも、システムは常にカメラからのストリームをキャプチャします。
私の場合、遠隔地の4Gチャネルを介して接続されたリモートカメラからサイトに画像を表示する必要がありました。アップロード速度は、最良の場合は10 Mbpsを超えることはありませんでしたが、通常は2〜3Mbpsでした。トラフィックは無制限ですが、プロバイダーは、200 GBを超えるトラフィックの消費は確かに悪影響を与えると非公式に警告しました。これは、条件付きの「無制限」です。私は彼らが単に速度を「カット」するだろうと思います。
GitHubのオープンスペースで見つかったソリューションのいくつかは実際には適切でしたが、適切なドキュメントがないか、複雑で面倒なようでした。
そして、私は次の特性を持つオンライン放送システムを必要としていました:
視聴者がいない場合はトラフィックを消費しません。
観客の1日平均同時人数-1〜3人;
すべてではないにしても、モバイルブラウザを含む人気のあるインターネットブラウザのほとんどをサポートします。
可能な限りシンプルで理解しやすい;
安価な;
できればオープンソース。
FFMpegプログラムの豊富な経験を持っているので、私はこのすべての機能を自分で実装しようと決心しました。結局、自分の手で作った「自転車」は、欲望と時間があれば何が悪いのでしょうか。
« , iVideon?» . , , , . , , ( ). , ( , ). , , . , «iVideon-» .
, , , Google Chrome Mozilla Firefox, H.264- . « » FFMpeg :
-movflags +frag_keyframe+separate_moof+omit_tfhd_offset+empty_moov
FFMpeg, MP4- moov moof .
:
«-c copy
» ;
«-an
» — (- , , );
«-t
» ( , );
«-rtsp_transport tcp
» — , RTP-, NAT ( );
«-probesize 32
» — ;
«-stimeout 5000000
» — - (5 ).
, PHP? . :
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Accept-Ranges:bytes');
header('Connection:keep-alive');
header('Content-type: video/mp4');
PHP FFMpeg :
passthru("ffmpeg < > -f mp4 pipe:");
, , Safari Mac iOS. , MP4 , — . , «» Google Chrome, .
, — MJPEG , , MP4, — ? — , , , … , , . , .
, . , :
: OGV WEBM;
();
, , (, ), , ;
- Mac. - — , . , «». Safari — .
, , — . :
, , Debian, Apache+PHP7 FFMpeg;
SSL- ;
www ;
camera.php (; ) $key, $redirectToIfBackground , ;
camera.php : camera.php?a=<rtsp- base64>&b=<>&c=<rtsp- base64>. «c» , .
, 5 . , base64 , http://base64.ru/, RTSP-.
, . MODX Revolution, , . CMS. $key $camera_server_url ( — , , ).
, :
{camera**RTSP-*RTSP- }
RTSP- . , . RTSP- , Onvif Device Manager. , « ».
. , , , . , «» camera.php, RTSP-, ( RTSP-), $key. , RTSP. «» . , . , … - «», .
ちなみに、個人的には、すべてのカメラがVPN(Wireguardが大好き)を介して1つのネットワークに接続されており、すべてのリンクが「グレーIP」に登録されています。便利、安全、幸せ。
私のコードはMITライセンスの下で公開されています。
このプロジェクトでは、SerkanYerşenによって開発され、MITによってライセンス供与されたifvisible.jsライブラリを使用しています。