Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Note that ffmpeg sends orientattion value but not angle itself.

Known issues

...

4. Some RTMP functions does not supported and will be ignored:

  • FCSubscribe
  • FCPublish
  • FCUnpublish
  • onStatus
  • onUpstreamBase
  • releaseStream

5. Some RTMP-encoders does not support KeepAlive.

Symptoms: disconnection occurs often while stream publishing with RTMP-encoder.

Solution: switch KeepAlive off for RTMP on the server using the following parameter in flashphoner.properties file

Code Block
languagebash
themeRDark
keep_alive.enabled=websocket,rtmfp

7. When stream published with RTMP encoder is played as HLS, freezes may occur if GOP is not multiple of FPS of file published

Symptoms: freezes occur when RTMP stream is played as HLS

...

Decoding buffer size management

When RTMP stream is published from software encoder supportin hardware acceleration on NVIDIA GPU, and contains B-frames, the stream picture can twitch in some RTMP or HLS players. To workaround this, since build 5.2.863 the parameter was added to set the maximum decoding buffer size passed in SPS

Code Block
themeRDark
h264_sps_max_dec_frame_buffering=-1

By default, buffer size is not limited. This eliminates picture twitching, but can inscrease latency due to excessive buffering. In this case, the buffer size can be limited to 2 frames (default value before build 5.2.863)

Code Block
themeRDark
h264_sps_max_dec_frame_buffering=2

or more frames to eliminate twitching without viewable latency.

Incoming RTMP stream buffering

RTMP stream published with high resolution and bitrate may be played non smoothly via WebRTC with freezes or low FPS if publishers channel is unstable. Incoming stream should be buffered to prevent playback issues

Code Block
themeRDark
rtmp_in_buffer_enabled=true

Adaptive RTMP incoming buffer has the following parameters to tune:

ParameterDescriptionDefault value
rtmp_in_buffer_start_sizeMinimum buffer volume to start, ms300
rtmp_in_buffer_initial_sizeMaxumum buffer volume, ms2000
rtmp_in_buffer_max_bufferings_allowedMaximum bufferings amout allowed-1 (unlimited)
rtmp_in_buffer_polling_timeBuffer polling period, ms100
rtmp_in_buffer_overflow_allowed_deviationMaximum difference between minimum and maximum buffer volumes used, ms1000
rtmp_in_buffer_overflow_deviation_windowWindow size to collect the difference, ms30000
rtmp_in_buffer_overflow_rateMaximum buffer overflow rate0.15
rtmp_in_buffer_clear_thresholdClear all the data exceeding maxumum buffer size when buffer reaches the threshold, ms30000

Known issues

Excerpt Include
From another server via RTMP
From another server via RTMP
nopaneltrue

4. Some RTMP functions does not supported and will be ignored:

  • FCSubscribe
  • FCPublish
  • FCUnpublish
  • onStatus
  • onUpstreamBase
  • releaseStream

5. Some RTMP-encoders does not support KeepAlive.

Symptoms: disconnection occurs often while stream publishing with RTMP-encoder.

Solution: switch KeepAlive off for RTMP on the server using the following parameter in flashphoner.properties file

Code Block
languagebash
themeRDark
keep_alive.enabled=websocket,rtmfp

7. When stream published with RTMP encoder is played as HLS, freezes may occur if GOP is not multiple of FPS of file published

Symptoms: freezes occur when RTMP stream is played as HLS

Solution: in RTMP encoder settings, assign GOP to value equal or multiple of FPS of file published. For example, when publishing file with FPS 25 set GOP to 50.

8. When stream published with RTMP encoder is played as WebRTC, stream audio has low quality

Symptoms: sound is good enogh for speech but not for music when RTMP is played as WebRTC

Solution: set Opus encoding bitrate as published one, for example

Code Block
themeRDark
opus.encoder.bitrate=160000

if RTMP stream is published with audio bitrate 160 kbps

9. High CPU load when stream H264+speex is published (for example, using Flash client) with audio transcoding

Symptoms: high CPU load while audio transcoding from speex to AAC or Opus

Solution: use native speex decoder implementation

Code Block
themeRDark
use_speex_java_impl=false

10. Stream with unsupported codecs cannot be published

Symptoms: RTMP stream with MP3 or AC3 audio is not publishing with the following warnings in server log

Code Block
themeRDark
11:01:00,921 WARN         ServerHandler - RTMP-pool-15-thread-1 Codecs not supported! audio: NoCodec, video: NoCodec

Solution: reencode stream to supported codecs using corresponding encoder settings