Versions Compared

Key

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

...

  • MP4 для кодеков H.264 + AAC
  • WebM для кодека кодеков VP8 + Vorbis
  • WebM для кодеков H264 + opus (начиная со сборки 2.0.2001)
  • TS для кодеков H.264 + ADTS
  • MKV (начиная со сборки 5.2.1190)

...

Обратите внимание, что потоки, которые не содержат видео дорожки, всегда записываются в MP4 контейнер (кодек AAC).

Начиная со сборки 2.0.2001, для записи WebRTC потоков H264+opus поддерживается также контейнер WebM

Code Block
themeRDark
record_formats=h264-webm,vp8-webm

Запись потоков в контейнер MPEG-TS

...

Остановка записи при ошибках

В сборке 5.2.1236 добавлены настройки, определяющие поведение при ошибках, возникающих при записи потока. По умолчанию, запись потока останавливается после 3 ошибок в течение 60 минут:сборке 5.2.1236 добавлены настройки, определяющие поведение при ошибках, возникающих при записи потока. По умолчанию, запись потока останавливается после 3 ошибок в течение 60 минут:

Code Block
themeRDark
file_recorder_error_interval=60
file_recorder_max_errors_per_interval=3

Если к ошибке привел определенный кадр в медиапотоке, этот и последующие кадры не будут записаны, до успешного получения очередного ключевого кадра.

Запись актуальных данных в заголовок MP4 контейнера

В сборке 5.2.1990 добавлена возможность периодической записи актуальных данных в заголовок MP4 контейнера

Code Block
themeRDark
mp4_container_moov_first_reserve_space=true
mp4_container_write_header_on_fly=true

В этом случае данные заголовка периодически обновляются в соответствии с записанными в файл медиаданными. Период обновления задается настройкой в секундах

Code Block
themeRDark
mp4_container_write_header_on_fly_interval=5

Это позволяет проиграть записанный файл даже при внезапной остановке записи в случае ошибки. Данные будут доступны для проигрывания в соответствии с заголовком.

Ротация при заполнении заголовка MP4 контейнера

Начиная со сборки 5.2.2012, если во время записи заполняется MOOV атом в заголовке MP4 контейнера, запись автоматически ротируется по максимально допустимому объему данных. Например, при публикации потока 1920x1080 с битрейтом 3 Мбит/c, 30 fps и записи этого потока с настройками

Code Block
themeRDark
file_recorder_error_interval=60
file_recorder_max_errors_per_interval=3

...

mp4_container_moov_first_reserve_space=true
mp4_container_moov_reserved_space_size=2048

длительность одной части составит около 22 минут, размер одной части около 510 Мб.

Клиентская часть

При включении записи потоков на сервере, будет ли записан поток, или нет, зависит от значения параметра record, переданного функции createStream в скрипте публикующего клиента:

...

Code Block
languagejs
themeRDark
{
  ...,
  "mixerDecodeStreamName": falsetrue
}

В этом случае в изображении будут отображаться декодированные символы, если такие символы есть в используемом шрифте, или близкие к ним по начертанию.

...