ZEC Adding Pull Streams
6 min
typically, a pull stream is transmitted from a broadcaster in this case, the stream is initiated by your zec if the stream is an mpts stream and you want to demux it into separate spts input streams, create the stream by following the instructions below, and then follow the instructions in the demuxing an mpts stream section to add a pull stream in the zec navigation menu, click the inputs tab in the menu bar, click +new input the add a new input stream window is displayed enter the unique stream i d for the zec note this must be identical (case sensitive) to the stream name configured in the sending zixi broadcaster or mediaconnect select the maximum concurrent connections to this stream from the max outputs drop down list default unlimited this setting can be modified without interrupting an existing stream select the show in matrix check box to display this stream in the matrix (see zec using the matrix docid\ ofxethpsuo9eimqpwfzea ) default selected select the log this stream checkbox if you would like to generate event logs for this input select the analyze checkbox if you would like to enable stream analysis for the input select pull for the input stream specify the stream parameters (see the input stream parameter table below) you can decrypt an encrypted stream as it enters the zec to decrypt a stream, select the decrypt stream checkbox and fill in the parameters as described in the input stream parameter table below for more information, see zec decrypting an input stream docid\ bhtlohk77uzwextzx4lwm if you want to configure the recording parameters , specify them in the respective fields (see input stream parameter table) click ok the “input added” message appears at the top of the screen the pull stream is added to the zec and now appears in the list of streams available in the zec inputs ui input stream parameters table parameter description stream parameters remote host enter the ip address of the remote zec server note that additional (failover) destinations can be added by clicking the adjacent “+” button remote port enter the port through which zec receives the stream from another zec server default 2088 the default input port for zec is udp port 2088 this port must be open on any firewalls between zec and other devices it is communicating with remote stream id enter the unique stream id from another zec server password (optional) if desired, enter the string for authentication it must be identical to the string configured on the other zec latency \[ms] specify the maximum number of milliseconds that zec should protect the stream for for example, 6000 milliseconds would ensure that the stream is protected for up to six seconds of delay in the network this setting affects memory usage as higher levels of protection require more buffering default 4000 ignore tls certificate errors select this option when connecting to a trusted server that does not have a valid certificate when this option is selected, zec will ignore the tls certificate errors this setting can be modified without interrupting an existing stream bind to ip select from the drop down list the local ip address to be used for this input, or select any to enable any ip to be used minimize latency when enabling this mode, the latency target will be adjusted down from the user setting to automatically find the lowest error free latency decrypt stream select this checkbox to decrypt the input stream please note that the stream will not be encrypted as it passes through the zixi path unless encryption is added for more information, see zec decrypting an input stream docid\ bhtlohk77uzwextzx4lwm decryption type (for decrypt stream enabled) specify the type of encryption that is being used in the stream this setting can be modified without interrupting an existing stream decryption key (for decrypt stream enabled) specify the key for decryption this setting can be modified without interrupting an existing stream enable encryption select this checkbox to encrypt the input stream the stream encryption prevents any further processing, such as analysis, transcoding, etc the encryption works in the following way if the stream has been encrypted at the source the stream will remain encrypted regardless of the output type zec can only encrypt the stream after it has been decrypted if the stream is being encrypted by the zec it will be encrypted only if the output is a zixi pull or zixi push output all other outputs will send out an unencrypted stream for more information, see zec encrypting an input stream docid\ qern0zffbaztl vrw4rn encryption type (for encryption enabled) specify the type of encryption (aes 128/192/256) encryption key (for encryption enabled) click generate to generate an encryption key the generated encryption key must be sent to the end user to decipher the received encoded stream recording parameters select this checkbox to customize the recording parameters destination type select the radio button for the desired storage type and then fill in the relevant parameters record to disk – the recording is saved on the local disk it is possible to record to an external destination by replacing the default storage location with a symbolic link to learn more, see zec using an external storage docid\ va00gdlmr u7oiykgklnx section record to s3 – the file is saved to your aws s3 bucket record to disk parameters file name template specify the file name pattern that zixi will use to generate when saving the recorded content a separate file will be generated for each recording up to the time specified in the max recorded file duration parameter (see above) after this duration, a new file will be generated the file name pattern can include any string and up to five variables listed below only the %t=hh mm ss creation time is mandatory you can change the order of these variables and add text as long as you maintain the legitimate structure of the file in linux and windows %s=stream id optional %y=year optional %m=month optional %d=day optional %t=hh mm ss creation time mandatory %u=yyyymmddthhmmssz utc timestamp – optional for example, the following pattern %y recording%t ts will generate the following file name 2022 recording15 32 35 ts max recorded file duration \[hh\ mm] specify the maximum time allotted for recording a video stream default 2 hours keep recorded files for \[hh\ mm] specify the maximum time for storing the recording default 0 hours custom path optionally specify a storage location for the recorded files that is relative to the root folder this location bypasses the location specified as the root folder in the settings > general screen record to s3 parameters file name template specify the file name pattern that zixi will use to generate when saving the recorded content a separate file will be generated for each recording up to the time specified in the max recorded file duration parameter (see above) after this duration, a new file will be generated the file name pattern can include any string and up to five variables listed below only the %t=hh mm ss creation time is mandatory you can change the order of these variables and add text as long as you maintain the legitimate structure of the file in linux and windows %s=stream id optional %y=year optional %m=month optional %d=day optional %t=hh mm ss creation time mandatory %u=yyyymmddthhmmssz utc timestamp – optional for example, the following pattern %y recording%t ts will generate the following file name 2022 recording15 32 35 ts max recorded file duration \[hh\ mm] specify the maximum time allotted for recording a video stream default 2 hours url specify the url of the s3 bucket ignore tls certificate errors tls certificate for s3 bucket might be detected as faulty if bucket name contains dot\[s] when this option is selected, zec will ignore the tls certificate errors and transmit the stream to its destination access key the access key that is used for accessing the s3 bucket secret key the secret key that is used for accessing the s3 bucket advanced mode the fields discussed below are optional and available only in advanced mode to enter advanced mode add the url parameter ?advanced=1 to the zec url in your browser and press enter/return to reload the page note the advanced mode settings are generally intended for advanced users and special cases if you do not understand the settings, you should probably accept the default values general latency offset \[ms] specify the additional buffering time in milliseconds increasing this value can improve stream stability in unstable network conditions, but will increase end to end delay default 0 ms inject metadata allows zixi create a pid that carries information about what hops a feed has travelled through on the way to its destination, it includes things like cc errors and iat at each hop the information is useful for debugging issues with streams support injection select this checkbox if you would like the stream to support scte 35 insertion scte 35 enter a pid number for scte 35 injection you can enter a value manually or use the up/down arrows that appear when clicking the field (or leave as auto to match existing scte 35 pid) remove old scte 35 packets if scte 35 injection is supported, select this checkbox to clear out existing packets keep stream select this checkbox to insert on null packets and maintain pcr accuracy in cbr streams stream parameters reconnect on low bitrate select this option to automatically disconnect and reestablish a connection when experiencing low bitrate conditions this creates a "hard reset" to address unrecoverable congestion, clearing stalled buffers, and renegotiating path bandwidth bind to select from the drop down list the cidr that represents the ip range where the desired nic is accessed local port specify the port to listen on this port must be open on all firewalls between the zec and other devices it is communicating with stats history select this checkbox to record stream statistics high bitrate select this option to enable the broadcaster to handle streams up to 1gbps (e g , for jpegxs) must use by default, broadcaster auto detects dtls and uses it when available if it's not available, the stream falls back to clear/non dtls select this setting to fail the input (error) when dtls is not available if you would like to configure the maximum transmission unit (the largest data packet that a network connected device will accept) for pulling the stream, enter the mtu in bytes socket buffer specify the socket buffer value in bytes allow enable arq to automatically detect lost or corrupted data packets and request their transmission options are remote configuration (default), on , and off \[kbps] specify a value in kbps to use the traffic shaping network management technique to control and optimize the flow of data maximum bitrate \[kbps] specify the maximum expected bitrate for memory allocation recommended 2x the actual bitrate, which will prevent buffer overruns (especially with vbr streams) default 0 note – overflows will typically occur when the max bitrate isn’t sufficient max fec overhead % specify the percentage above the source bitrate to apply fec (default is 30%) \[ms] specify the number of milliseconds that zixi protects with a single fec block adaptive fec select to adjust fec latency adaptively in real time when enabled, fec protection is applied only when it's actually needed, not wasting fec bandwidth on clean networks the error recovery techniques implemented in the zixi protocol pull streams are protected under u s patent 11,546,615