private/Functions/Axis/Get-AxisMediaProfile.ps1
<#
https://$($ip)/stw-cgi/media.cgi?msubmenu=videoprofile&action=update EncodingType=H265 Resolution=$($resX)x$($resY) FrameRate=$($framerate) Bitrate=5120 H265.PriorityType=FrameRate H265.GOVLength=8 H265.DynamicGOVLength=8 H265.EntropyCoding=CABAC H265.Profile=Main H265.BitrateControlType=VBR H265.SmartCodecEnable=False H265.DynamicFPSEnable=False H265.MinDynamicFPS=1 Profile=1 Channel=$($channelnum) #> Function Get-AxisMediaProfile { [cmdletBinding()] Param( [Parameter()] [hashtable]$Object ) <# Object Definition: @{ IP = [String(Mandatory)] Credential = [PSCredential(Mandatory)] PofileId = [int] as [String(Optional)] Channel = [int] as [String(Optional)] } #> #Set basic Paramters for Invoke-AxisCommand $CamCmd = @{ Arguments = @{ IP = $Object.IP Menu = 'media' SubMenu = 'videoprofile' Action = 'view' Parameters = @() } Credential = $Object.Credential } #Add Action Parameters if($Object.ContainsKey('Channel') -and !$Object.ContainsKey('ProfileId')) { $CamCmd.Arguments.Parameters += "Channel=$($Object.Channel)" } elseif($Object.ContainsKey('ProfileId') -and !$Object.ContainsKey('Channel')) { $CamCmd.Arguments.Parameters += "Profile=$($Object.ProfileId)" } else { $CamCmd.Arguments.Parameters += "Channel.$($Object.Channel).Profile=$($Object.ProfileId)" } $output = (Invoke-AxisCommand @CamCmd).VideoProfiles if($Object.ContainsKey('ProfileId') -and $Object.ContainsKey('Channel')) { return $output.Profiles[0] } return $output } |