Video encoder fields

These are the fields related to the built in video encoder in the ATEM Mini series of video switchers. This contains all the settings for the “Live stream” and “Stream recorder” components of these devices.

The settings for these two features are interlinked. The same encoder is used for creating the h265 stream for the live broadcast and the recording.

Base encoder settings

class pyatem.field.StreamingAudioBitrateField(raw)

Data from the STAB. This is the audio bitrate for the internal encoder used for recording and streaming This is always 128k for min and max on tested devices.

Offset

Size

Type

Descriptions

0

4

u32

Min bitrate

4

4

u32

Max bitrate

Live streaming

class pyatem.field.StreamingServiceField(raw)

Data from the SRSU. This the settings for the live stream output, it also sets the video bitrate for the internal encoder which is shared with the recorder component so this influences recording quality.

The ATEM Software Control application only uses the rtsp URL to display the streaming service name and has a preset list of rtsp urls for various streaming services.

Offset

Size

Type

Descriptions

0

64

char[]

Service display name

65

512

char[]

Target rtsp url

557

512

char[]

Stream key/secret

1089

4

u32

Video bitrate minimum

1093

4

u32

Video bitrate maximum

class pyatem.field.StreamingStatusField(raw)

Data from the StRS. The displayed status of the live stream

Offset

Size

Type

Descriptions

0

2

i16

Status

2

2

?

unknown

Status

Value

-1

unknown

0

nothing?

1

idle

2

connecting

4

on-air

22

stopping

36

stopping

class pyatem.field.StreamingStatsField(raw)

Data from the SRSS. The displayed status of the live stream

Offset

Size

Type

Descriptions

0

4

u32

Bitrate

4

2

u16

Cache used

Recording

class pyatem.field.RecordingSettingsField(raw)

Data from the RMSu. The settings for the stream recorder.

Offset

Size

Type

Descriptions

0

128

char[]

Audio source index

128

4

i32

Disk slot 1 index, or -1 for no disk

132

4

i32

Disk slot 2 index, or -1 for no disk

136

1

bool

Trigger recording in cameras

137

3

?

?

The recorder settings has 2 slots to select attached USB disks. If no disk is selected the i32 will be -1 otherwise it will be the disk number referring a RTMD field

class pyatem.field.RecordingDiskField(raw)

Data from the RTMD. Info about an attached recording disk.

Offset

Size

Type

Descriptions

0

4

u32

Disk index

4

4

u32

Recording time available in seconds

8

2

u16

Status bitfield

10

64

char[]

Volume name

Bit

Status value

0

Idle

1

Unformatted

2

Ready

3

Recording

4

?

5

Deleted

class pyatem.field.RecordingStatusField(raw)

Data from the RTMS. The status for the stream recorder and total space left in the target device.

Offset

Size

Type

Descriptions

0

2

u16

Recording status

4

4

i32

Total recording time available

Bit

Status value

0

Recording

1

?

2

Disk full

3

Disk error

4

Disk unformatted

5

Frames dropped

6

?

7

Stopping

class pyatem.field.RecordingDurationField(raw)

Data from the RTMR. The current recording duration, this does not update very often. The dropped frames field signifies that the disk cannot keep up with writing the data and triggers the warning in the UI.

Offset

Size

Type

Descriptions

0

1

u8

Hours

1

1

u8

Minutes

2

1

u8

Seconds

3

1

u8

Frames

4

1

bool

Has dropped frames

5

3

?

unknown