mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-04 05:16:45 +00:00
49_SSCam: changed audiolink handling to new execution variant in camOp
git-svn-id: https://svn.fhem.de/fhem/trunk@22760 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
582fc2904b
commit
acd870f610
@ -164,6 +164,7 @@ BEGIN {
|
|||||||
|
|
||||||
# Versions History intern
|
# Versions History intern
|
||||||
my %vNotesIntern = (
|
my %vNotesIntern = (
|
||||||
|
"9.7.15" => "12.09.2020 changed audiolink handling to new execution variant in camOp ",
|
||||||
"9.7.14" => "10.09.2020 bugfix in reactivation HLS streaming ",
|
"9.7.14" => "10.09.2020 bugfix in reactivation HLS streaming ",
|
||||||
"9.7.13" => "10.09.2020 optimize liveview handling ",
|
"9.7.13" => "10.09.2020 optimize liveview handling ",
|
||||||
"9.7.12" => "09.09.2020 implement new getApiSites usage, httptimeout default value increased to 20s, fix setting motdetsc ",
|
"9.7.12" => "09.09.2020 implement new getApiSites usage, httptimeout default value increased to 20s, fix setting motdetsc ",
|
||||||
@ -3736,6 +3737,18 @@ sub __runLiveview {
|
|||||||
$hash->{HELPER}{CALL}{PART} = qq{api=_NAME_&version=_VER_&method=Open&cameraId=_CID_&format=hls&_sid=_SID_};
|
$hash->{HELPER}{CALL}{PART} = qq{api=_NAME_&version=_VER_&method=Open&cameraId=_CID_&format=hls&_sid=_SID_};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($hash->{HELPER}{RUNVIEW} !~ m/snap|^live_.*hls$/x) {
|
||||||
|
if ($hash->{HELPER}{RUNVIEW} =~ m/live/x) {
|
||||||
|
if($hash->{HELPER}{API}{AUDIOSTM}{VER}) { # Audio aktivieren
|
||||||
|
$hash->{HELPER}{ACALL}{AKEY} = "AUDIOSTM";
|
||||||
|
$hash->{HELPER}{ACALL}{APART} = qq{api=_ANAME_&version=_AVER_&method=Stream&cameraId=_CID_&_sid=_SID_};
|
||||||
|
|
||||||
|
} else {
|
||||||
|
delete $hash->{HELPER}{AUDIOLINK};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
setActiveToken($hash);
|
setActiveToken($hash);
|
||||||
checkSid ($hash);
|
checkSid ($hash);
|
||||||
|
|
||||||
@ -5901,39 +5914,44 @@ sub camOp {
|
|||||||
my $httptimeout = AttrVal($name, "httptimeout", $todef);
|
my $httptimeout = AttrVal($name, "httptimeout", $todef);
|
||||||
|
|
||||||
if($hash->{HELPER}{CALL}) { # neue camOp Ausführungsvariante
|
if($hash->{HELPER}{CALL}) { # neue camOp Ausführungsvariante
|
||||||
my $akey = delete $hash->{HELPER}{CALL}{VKEY}; # API Key
|
my $vkey = delete $hash->{HELPER}{CALL}{VKEY}; # API Key Video Parts
|
||||||
my $head = delete $hash->{HELPER}{CALL}{HEAD}; # vom Standard abweichende Serveradresse / Port
|
my $head = delete $hash->{HELPER}{CALL}{HEAD}; # vom Standard abweichende Serveradresse / Port
|
||||||
my $part = delete $hash->{HELPER}{CALL}{PART}; # URL-Teilstring ohne Startsequenz (Server, Port, ...)
|
my $part = delete $hash->{HELPER}{CALL}{PART}; # URL-Teilstring ohne Startsequenz (Server, Port, ...)
|
||||||
my $to = delete $hash->{HELPER}{CALL}{TO} // 0; # evtl. zuätzlicher Timeout Add-On
|
my $to = delete $hash->{HELPER}{CALL}{TO} // 0; # evtl. zuätzlicher Timeout Add-On
|
||||||
delete $hash->{HELPER}{CALL};
|
delete $hash->{HELPER}{CALL};
|
||||||
|
|
||||||
$httptimeout += $to;
|
$httptimeout += $to;
|
||||||
|
|
||||||
$part =~ s/_NAME_/$hash->{HELPER}{API}{$akey}{NAME}/x;
|
$part =~ s/_NAME_/$hash->{HELPER}{API}{$vkey}{NAME}/x;
|
||||||
$part =~ s/_VER_/$hash->{HELPER}{API}{$akey}{VER}/x;
|
$part =~ s/_VER_/$hash->{HELPER}{API}{$vkey}{VER}/x;
|
||||||
$part =~ s/_CID_/$hash->{CAMID}/x;
|
$part =~ s/_CID_/$hash->{CAMID}/x;
|
||||||
$part =~ s/_SID_/$hash->{HELPER}{SID}/x;
|
$part =~ s/_SID_/$hash->{HELPER}{SID}/x;
|
||||||
|
|
||||||
if($head) {
|
if($head) {
|
||||||
$url = $head.qq{/webapi/$hash->{HELPER}{API}{$akey}{PATH}?}.$part;
|
$url = $head.qq{/webapi/$hash->{HELPER}{API}{$vkey}{PATH}?}.$part;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$url = qq{$proto://$serveraddr:$serverport/webapi/$hash->{HELPER}{API}{$akey}{PATH}?}.$part;
|
$url = qq{$proto://$serveraddr:$serverport/webapi/$hash->{HELPER}{API}{$vkey}{PATH}?}.$part;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($hash->{HELPER}{ACALL}) { # neue camOp Audio Ausführungsvariante
|
||||||
|
my $akey = delete $hash->{HELPER}{CALL}{AKEY}; # API Key Audio Parts
|
||||||
|
my $apart = delete $hash->{HELPER}{CALL}{APART}; # URL-Teilstring Audio
|
||||||
|
|
||||||
|
$apart =~ s/_ANAME_/$hash->{HELPER}{API}{$akey}{NAME}/x;
|
||||||
|
$apart =~ s/_AVER_/$hash->{HELPER}{API}{$akey}{VER}/x;
|
||||||
|
$apart =~ s/_CID_/$hash->{CAMID}/x;
|
||||||
|
$apart =~ s/_SID_/$hash->{HELPER}{SID}/x;
|
||||||
|
|
||||||
|
$hash->{HELPER}{AUDIOLINK} = qq{$proto://$serveraddr:$serverport/webapi/$hash->{HELPER}{API}{$akey}{PATH}?}.$apart;
|
||||||
|
}
|
||||||
|
|
||||||
if ($OpMode eq "runliveview" && $hash->{HELPER}{RUNVIEW} !~ m/snap|^live_.*hls$/x) {
|
if ($OpMode eq "runliveview" && $hash->{HELPER}{RUNVIEW} !~ m/snap|^live_.*hls$/x) {
|
||||||
$exturl = AttrVal($name, "livestreamprefix", "$proto://$serveraddr:$serverport");
|
$exturl = AttrVal($name, "livestreamprefix", "$proto://$serveraddr:$serverport");
|
||||||
$exturl = ($exturl eq "DEF") ? "$proto://$serveraddr:$serverport" : $exturl;
|
$exturl = ($exturl eq "DEF") ? "$proto://$serveraddr:$serverport" : $exturl;
|
||||||
|
|
||||||
if ($hash->{HELPER}{RUNVIEW} =~ m/live/x) {
|
if ($hash->{HELPER}{RUNVIEW} =~ m/live/x) {
|
||||||
if($apiaudiostmver) { # API "SYNO.SurveillanceStation.AudioStream" vorhanden ? (removed ab API v2.8)
|
|
||||||
$hash->{HELPER}{AUDIOLINK} = "$proto://$serveraddr:$serverport/webapi/$apiaudiostmpath?api=$apiaudiostm&version=$apiaudiostmver&method=Stream&cameraId=$camid&_sid=$sid";
|
|
||||||
|
|
||||||
} else {
|
|
||||||
delete $hash->{HELPER}{AUDIOLINK} if($hash->{HELPER}{AUDIOLINK});
|
|
||||||
}
|
|
||||||
|
|
||||||
if($apivideostmsver) { # API "SYNO.SurveillanceStation.VideoStream" vorhanden ? (removed ab API v2.8)
|
if($apivideostmsver) { # API "SYNO.SurveillanceStation.VideoStream" vorhanden ? (removed ab API v2.8)
|
||||||
$exturl .= "/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsver&method=Stream&cameraId=$camid&format=mjpeg&_sid=$sid"; # externe URL
|
$exturl .= "/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsver&method=Stream&cameraId=$camid&format=mjpeg&_sid=$sid"; # externe URL
|
||||||
$url = "$proto://$serveraddr:$serverport/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsver&method=Stream&cameraId=$camid&format=mjpeg&_sid=$sid"; # interne URL
|
$url = "$proto://$serveraddr:$serverport/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsver&method=Stream&cameraId=$camid&format=mjpeg&_sid=$sid"; # interne URL
|
||||||
@ -8218,6 +8236,7 @@ sub _streamDevMJPEG { ## no critic 'complexity not
|
|||||||
} else {
|
} else {
|
||||||
if($apivideostmsver) {
|
if($apivideostmsver) {
|
||||||
$link = "$proto://$serveraddr:$serverport/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsver&method=Stream&cameraId=$camid&format=mjpeg&_sid=$sid";
|
$link = "$proto://$serveraddr:$serverport/webapi/$apivideostmspath?api=$apivideostms&version=$apivideostmsver&method=Stream&cameraId=$camid&format=mjpeg&_sid=$sid";
|
||||||
|
|
||||||
} elsif ($hash->{HELPER}{STMKEYMJPEGHTTP}) {
|
} elsif ($hash->{HELPER}{STMKEYMJPEGHTTP}) {
|
||||||
$link = $hash->{HELPER}{STMKEYMJPEGHTTP};
|
$link = $hash->{HELPER}{STMKEYMJPEGHTTP};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user