Requirements for Source Streams and Files
Flussonic supports only limited set of codecs and containers. All others will not work, or their playing will lead to problems like errors in DVR playback.
More accurate description of codec and container is available on the Wikipedia website. In short, a codec is a video/audio compression algorithm, and a container is the format of a stream or a file in which the encoded data will be transmitted.
Often the format of the incoming stream depends on the sender, but sometimes one can choose it independently: for example, in the settings of the hardware encoder or the video camera.The list of supported formats is different for streams (live) and files (vod).
|HLS||h264, h265 (hevc), aac, eac3, mp3|
|HDS||h264, aac, mp3|
|RTMP, FLV||h264, aac, mp3, pcmu (G.711 u-law)|
|RTSP||h264, h265, aac, pcma (G.711 A-law), pcmu (G.711 u-law)|
|MPEG-TS (HTTP, UDP)||h264, aac, eac3, mp3, mpeg2-audio, mpeg2-video, h265 (hevc)|
|MP4 (.mp4, .f4v, .mov, .m4v, .mp4a, .3gp, .3g2)||H.264||MP3, AAC (all profiles)|
Sometimes it is necessary to publish video from browser to Flussonic.
Flussonic can accept video via WebRTC protocol from any modern browser without Flash plugin.
Read more about WebRTC in our documentation.
Sometimes it is impossible to pre-select the format of the incoming stream.
In this case, it is necessary to use so-called transcoding.
For this purpose, Flussonic has a built-in transcoder, which can convert streams from various formats into h264/aac.
For example, video coming from a satellite.
- If it comes in MPEG-TS+h264/aac, it is the best case, the video will play without transcoding and use little server resources.
- If mpeg2video is used instead of the standard h264, one should enable video transcoding (in the vb option particular bitrate should be specified, for example: vb=1024k). Transcoding video is a very resource-intensive operation; even very powerful servers can't transcode more than 20 threads at the same time.
- If video is already in h264, but audio uses mpeg2audio instead of aac, it is possible to transcode only the audio, it will save server resources. To do this, specify vb=copy in the transcoder options.
More info about the resources necessary for Flussonic are available from a separate article.
Video source must output at least 10 frames per second. Flussonic recognizes everything with lower FPS as a non-working source. The best way is setting the source to 15 FPS and higher.
Some video cameras that are configured to low FPS may output streams in jerks a couple seconds long. The first impression is that the Internet speed is not high enough, it is necessary to configure cache or something like that, but actually it is enough to simply increase FPS in the settings of the camera.
One should consider that improving video quality increases the load on the camera. Cheap Chinese cameras may overheat and hang up with higher settings, or will not be able to maintain a good steady stream. For these weak cameras, a balance between quality and performance should be maintained. For example, the number of simultaneous connections to the camera should be reduced to 1 (i.e., video from the camera should be received only by Flussonic and no one else).