How to Monitor Streams Using W...
Video and Audio Codec Support Options
2 min
webrtc stream delivery requires particular audio and video codecs in case the streams you are transporting via zixi broadcaster do not match these requirements, additional transcoding will be necessary in order to re encode the stream to become webrtc compliant the following are the requirements for a zixi stream to be webrtc compliant video h 264 codec with baseline or main profile and no b frames audio – opus codec the following is a description of the possible methods for processing streams in zixi for webrtc viewing pass through – if the stream is already fully compliant with webrtc, then it can be passed through the zixi broadcaster to the webrtc player for viewing transcoding – if the incoming stream is not fully compliant, then you need to first transcode the stream in order to prepare it for delivery to the webrtc player there are two methods that can be used for transcoding a stream for webrtc single version creating a single version of the monitor stream for all users – in this option the stream will be encoded using zixi broadcaster's transcoder (with existing x264 or nvidia for transcoding) this option allows many users to monitor the stream without encoding for each individual user, which saves cpu capacity however, the option will still require additional output bandwidth for each user since there is only one stream version, it is recommended to encode to a low resolution and low bitrate so that the stream will be viewable by all users monitoring the stream multiple version creating a unique version of the monitor stream for each user – in this option zixi broadcaster will transcode the video, transforming it into raw frames, which will be passed to the webrtc library, where it will be re encoded for each individual user in this option the stream will match the bitrate available for every particular user although this promises the best quality for users' specific network conditions, each re encode consumes cpu, which could potentially max out the available cpu resources used to transport the streams in this case, if the stream will be monitored by a large number of users, it is recommended to host a second broadcaster and send the stream to the second broadcaster and have all users monitor the stream from that second broadcaster by doing so, there will be no impact on the primary broadcaster input codec passthrough single version multiple version video codecs h 264 with no b frames (profile baseline/main) yes not relevant not relevant h 264 with b frames no transcode to webrtc compliant profile (e g h 264 codec with baseline or main profile and no b frames) needs transcoding on a server with nvidia gpus transcode to a raw profile and specify a low resolution mpeg2 no transcode to webrtc compliant profile needs transcoding on a server with nvidia gpus transcode to a raw profile and specify a low resolution hevc no transcode to webrtc compliant profile needs transcoding on a server with nvidia gpus transcode to a raw profile and specify a low resolution audio codecs opus yes not relevant not relevant aac no transcode to opus codec transcode to raw ac 3lc / he v1 / he v2 no transcode to opus codec transcode to raw mpeg 2 audio layer ii no transcode to opus codec transcode to raw mpeg 1 audio layer ii no transcode to opus codec transcode to raw e ac 3 (and other unsupported codecs) not supported the stream will be passed through to webrtc without audio not relevant not relevant