Файл transcoder-main.xml

Файл содержит список глобальных настроек, и список каналов с индивидуально задаваемыми параметрами кодирования Параметры видеозахвата/транскодирования содержатся в тегах Capture и Transcoding соответственно.

Пример

<Transcoder>

<!-- Глобальные настройки -->
<Config>
<!-- Хост, на котором слушает HTTP-сервер главного процесса -->
<HttpBindHost>0.0.0.0</HttpBindHost>

<!-- TCP порт, который слушает HTTP-сервер главного процесса -->
<HttpBindPort>8080</HttpBindPort>

<!-- HTTP-хост по умолчанию (если не пришел заголовок Host) -->
<HttpHostName>localhost</HttpHostName>

<!-- Путь к ресурсу с потоком -->
<StreamPath>stream</StreamPath>

<!-- Путь к ресурсу со списком каналов -->
<ChannelsPath>channels</ChannelsPath>

<!-- Размер буфера потока -->
<BufferSize>1048576</BufferSize>

<!-- Log-файл основного процесса -->
<MainLogFile>main.log</MainLogFile>

<!-- Время аренды IP-адресов, выдаваемых транскодерам -->
<DHCPLeaseTime>86400</DHCPLeaseTime>
</Config>

<!-- Список каналов -->
<ChannelList>

<Channel>

<!-- Уникальный ID канала. Обязательное поле -->
<ChannelID>1</ChannelID>

<!-- Тип - ТВ, пока ни на что не влияет -->
<Type>tv</Type>

<!-- Наименование, ни на что не влияет -->
<Name>Channel-1</Name>

<!-- Качество - SD или HD, в ряде случаев важно -->
<Quality>SD</Quality>

<!-- Multicast источник потока -->
<Address>udp://228.99.0.5:1234</Address>

<!-- Индивидуальный Log-файл транскодера канала -->
<LogFile>channel-1.log</LogFile>

<!-- Тип обработки - транскодирование -->
<Transcoding>

<!-- Адрес транскодера -->
<VixsAddress>http://10.10.0.1:8080</VixsAddress>
<!-- Канал транскодера: 0 или 1 -->
<VixsChannel>0</VixsChannel>

<!-- Список параметров обработки, см. описание -->
<Options>
<InputProgramNumber>27005</InputProgramNumber>
<InputVideoPID>51</InputVideoPID>
<InputAudioPID>52</InputAudioPID>
<AudioFormat>AC3</AudioFormat>
<AudioBitrate>192000</AudioBitrate>
<VideoFormat>MPEG2</VideoFormat>
<Horizontal>720</Horizontal>
<Vertical>576</Vertical>
<Bitrate>1000000</Bitrate>
<MPEG4Profile>MPEG4_AVC_MP</MPEG4Profile>
<MPEG4Level>MPEG4_AVC_LEVEL_3</MPEG4Level>
</Options>
</Transcoding>

<!-- Обработка данного канала сводится к раздаче по HTTP -->
<Channel>
<ChannelID>2</ChannelID>
<LogFile>channel-3.log</LogFile>
<type>tv</type>
<name>Channel-2</name>
<quality>SD</quality>
<address>udp://228.99.0.10:1234</address>
</Channel>

<!-- Тип обработки - видеозахват -->
<Channel>
<ChannelID>3</ChannelID>
<LogFile>channel-3.log</LogFile>
<Type>tv</Type>
<Quality>HD</Quality>
<Name>Channel-3</Name>
<Capture>
<VixsAddress>http://10.20.0.2:8080</VixsAddress>
<VixsChannel>0</VixsChannel>
<Options>
<InputHorizontal>1920</InputHorizontal>
<InputVertical>1080</InputVertical>
<InputAudioSampleRate>44100</InputAudioSampleRate>
<Bitrate>5000000</Bitrate>
<Horizontal>1920</Horizontal>
<Vertical>1080</Vertical>
<VideoFormat>AVC</VideoFormat>
<MPEG4Profile>MPEG4_AVC_HP</MPEG4Profile>
<MPEG4Level>MPEG4_AVC_LEVEL_4</MPEG4Level>
<InputVideoOnly>Yes</InputVideoOnly>
</Options>
</Capture>
</Channel>

</ChannelList>
</Transcoder>

Описание параметров кодирования

ПараметрЗначение по умолчаниюПрименимостьОписаниеЗамечение
InputHorizontalне заданоCapture, TranscodingРазрешение по горизонтали для входящего потокаПри перекодировании поле опционально
InputVerticalне заданоCapture, TranscodingРазрешение по вертикали для входящего потокаПри перекодировании поле опционально
Horizontal720Capture, TranscodingРазрешение по горизонтали для исходящего потока 
Vertical576Capture, TranscodingРазрешение по вертикали для исходящего потока 
InputFrameRate30Capture, TranscodingЧастота кадров входящего видеопотока 
FrameRate30Capture, TranscodingЧастота кадров исходящего видеопотока 
InputVideoFormatMPEG2_CBRTranscodingФормат видео для входящего потокасм. список форматов
VideoFormatMPEG4_AVCCapture, TranscodingФормат видео для исходящего потокасм. список форматов
Bitrate1000000Capture, TranscodingБитрейт исходящего потока, бит/сек 
MPEG4ProfileMPEG4_AVC_MPCapture, TranscodingПрофиль MPEG4 для исходящего потокаАктуально для MPEG-4
MPEG4LevelMPEG4_AVC_LEVEL_3Capture, TranscodingLevel MPEG4 для исходящего потокаАктуально для MPEG-4
InputAudioFormatне заданоTranscodingФормат входящего звукового потокаЗначения по-умолчанию в большинстве случаев достаточно
AudioFormatAC3Capture, TranscodingФормат исходящего звукового потокасм. список форматов
InputAudioSampleRateне заданоCapture, TranscodingЧастота дискретизации входящего звукового потока 
AudioSampleRate

48000

Capture, Transcoding

Частота дискретизации исходящего звукового потока

Есть серьезные подозрения, что параметр не работает

AudioBitrate128000Capture, TranscodingЧастота дискретизации исходящего звукового потока 
InputAudioChannels2Capture, TranscodingКоличество каналов во входящем аудиопотоке, 2 - стерео, 1 - моно 
AudioChannels2Capture, TranscodingКоличество каналов в исходящем аудиопотоке, 2 - стерео, 1 - моно 
InputProgramNumberне заданоTranscodingProgram Number для входящего потока 
ProgramNumber1Capture, TranscodingProgram Number для исходящего потокаТребуется проверка в режиме транксодирования
InputVideoPIDне заданоTranscodingPID входящего видеопотока 
VideoPID0x1000Capture,TranscodingPID исходящего видеопотокаТребуется проверка в режиме транксодирования
InputAudioPIDне заданоTranscodingPID входящего аудиопотока 1 
AudioPID0x1001Capture,TranscodingPID исходящего аудиопотока 1Требуется проверка в режиме транксодирования
InputAudioPID2не заданоTranscodingPID входящего аудиопотока 2 
AudioPID20x1002Capture,TranscodingPID исходящего аудиопотока 2Требуется проверка в режиме транксодирования
PcrPID0x1003Capture,TranscodingPID потока PCRТребуется проверка в режиме транксодирования
PmtPID0x20Capture,TranscodingPID PMT-таблицыТребуется проверка в режиме транксодирования
PsiOutputInterval100Capture,TranscodingИнтервал отправки PMT, мс 
InputVideoOnlyNoCapture,TranscodingСообщает транскодеру об отсутствии звуковой дорожке на входеЗначение типа Yes/No
InputAudioOnlyNoCapture,TranscodingСообщает транскодеру об отсутствии видео на входеЗначение типа Yes/No
InputVideoProgressiveне заданоCapture,TranscodingЗадает типа развертки входящего потока. No - чересстрочный, Yes - прогрессивныйПри транскодировании значения по-умолчанию обычно достаточно
VideoProgressiveне заданоCapture,TranscodingЗадает типа развертки исходящего потока. No - чересстрочный, Yes - прогрессивный 
CaptureSource0CaptureЗадает входящий порт VixS-а, с которого берется захватываемый потокЗначение 0 или 1

Список форматов

Видео

Список возможных значений параметров InputVideoFormat, VideoFormat

ТипСинонимыОписание
MPEG2_CBR MPEG2 constant bitrate
MPEG2_VBRMPEG2MPEG2 variable bitrate
MPEG4_CBR MPEG4 constant bitrate
MPEG4_VBRMPEG4MPEG4 variable bitrate
MPEG4_AVC_CBR MPEG4 advanced video coding, constant bitrate
MPEG4_AVC_VBRMPEG4_AVC, AVCMPEG4 advanced video coding, variable bitrate

Audio

Список возможных значений параметров InputAudioFormat, AudioFormat

  • MP2
  • AC3
  • MPEG2_AAC
  • MPEG4_AAC

Профили MPEG4

Список возможных значений параметра MPEG4Profile

ТипОписание
MPEG4_SPSimple Profile
MPEG4_SPAdvanced Simple Profile
MPEG4_AVC_BPAVC Base Profile
MPEG4_AVC_MPAVC Main Profile
MPEG4_AVC_HPAVC High Profile

Уровни MPEG4

Список возможных значений параметра MPEG4Level

  • MPEG4_AVC_LEVEL_1
  • MPEG4_AVC_LEVEL_1B
  • MPEG4_AVC_LEVEL_11
  • MPEG4_AVC_LEVEL_12
  • MPEG4_AVC_LEVEL_13
  • MPEG4_AVC_LEVEL_2
  • MPEG4_AVC_LEVEL_21
  • MPEG4_AVC_LEVEL_22
  • MPEG4_AVC_LEVEL_3
  • MPEG4_AVC_LEVEL_31
  • MPEG4_AVC_LEVEL_32
  • MPEG4_AVC_LEVEL_4
  • MPEG4_AVC_LEVEL_41
  • MPEG4_AVC_LEVEL_42
  • MPEG4_AVC_LEVEL_5
  • MPEG4_AVC_LEVEL_51