...
REST-метод | Пример тела REST-запроса | Пример тела REST-ответа | Статусы ответа | Описание | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
/transcoder/startup |
| 400 - Bad request 409 - Conflict 500 - Internal error | Создать транскодер с указанными параметрами для заданного потока | |||||||||||||||
/transcoder/find |
|
| 200 – транскодеры найденыOK 404 – транскодеры не найденыNot found | Найти транскодер по указанным критериям | ||||||||||||||
/transcoder/find_all |
| 200 – транскодеры найденыOK 404 – транскодеры не найденыNot found | Найти все транскодеры | |||||||||||||||
/transcoder/terminate |
| 200 - транскодер завершенOK 404 - транскодер не найденNot found | Остановить транскодер и его выходной поток |
Параметры
Имя параметра | Описание | Пример | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
uri | URL транскодера | transcoder://tcode1 | |||||||||||
localStreamName | Имя выходного потока транскодера | /transcoder/set_watermark |
| 200 - OK 400 - Bad request 404 - Not found | Добавить водяной знак к потоку транскодера |
Параметры
Имя параметра | Описание | Пример |
---|---|---|
uri | URL транскодера | transcoder://tcode1 |
localStreamName | Имя выходного потока транскодера | testT |
remoteStreamName | Имя транскодируемого потока | test |
localMediaSessionId | Идентификатор медиасессии транскодера | 42a92132-bcd1-4436-a96f-3fec36b32b37 |
status | Текущий статус транскодера | PROCESSED_LOCAL |
hasAudio | Выходной поток содержит аудио | true |
hasVideo | Выходной поток содержит видео | true |
record | Выходной поток записывается | false |
Параметры кодирования | ||
width | Ширина картинки | 640 |
height | Высота картинки (обязательный параметр) | 480 |
keyFrameInterval | Частота генерации ключевых кадров (GOP) | 30 |
fps | Частота кадров в секунду | 30 |
bitrate | Битрейт в кб/с | 500 |
type | Кодек | OPENH264 |
watermark | Файл водяного знака | Test.png |
...
REST-методы и статусы ответа
Имя параметра
Описание
Пример
uri
URL транскодера
transcoder2://tcode2
testT
test
82ad5545-e11e-4f0f-801a-49e69d8c38f2
status
REST-метод | Пример тела REST-запроса | Пример тела REST-ответа | Статусы ответа | Описание | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
/transcoder2/startup |
| 200 - OK 400 - Bad request 409 - Conflict 500 - Internal error | Создать транскодер с указанными параметрами для заданного потока | |||||||||||||||
/transcoder2/find |
|
| 200 – OK 404 – Not found | Найти транскодер по указанным критериям | ||||||||||||||
/transcoder/find_all |
| 200 – OK 404 – Not found | Найти все транскодеры | |||||||||||||||
/transcoder/terminate |
| 200 – OK 404 – Not found | Остановить транскодер и его выходной поток |
Параметры
/transcoder2/set_watermark |
| 200 - OK 400 - Bad request 404 - Not found | Добавить водяной знак к потоку транскодера |
Параметры
Имя параметра | Описание | Пример |
---|---|---|
uri | URL транскодера | transcoder2://tcode2 |
localStreamName | Имя выходного потока транскодера | testT |
remoteStreamName | Имя транскодируемого потока | test |
localMediaSessionId | Идентификатор медиасессии транскодера | 82ad5545-e11e-4f0f-801a-49e69d8c38f2 |
status | Текущий статус транскодера | PROCESSED_LOCAL |
hasAudio | Выходной поток содержит аудио | true |
hasVideo | Выходной поток содержит видео | true |
record | Выходной поток записывается | false |
Параметры кодирования | ||
width | Ширина картинки | 320 |
height | Высота картинки (обязательный параметр) | 240 |
audioCodec | Кодек аудио | mpeg4-generic |
audioRate | Частота дискретизации аудио, Гц | 44100 |
audioChannels | Количество каналов аудио | 2 |
audioBitrate | Битрейт аудио, бит/с | 64000 |
videoCodec | Кодек видео | H264 |
keyFrameInterval | Частота генерации ключевых кадров (GOP) | 30 |
fps | Частота кадров в секунду | 30 |
bitrate | Битрейт видео в кб/с | 500 |
type | Кодировщик | OPENH264 |
watermark | Файл водяного знака | Test.png |
videoRate | Частота дискретизации видео, Гц | 90000 |
...
Code Block | ||
---|---|---|
| ||
av_paced_sender_max_buffer_size=5000 |
По умолчанию размер буфера составляет 5000 кадров
Для контроля работы выравнивающего буфера используется статистика, получаемая при помощи запроса
Code Block | ||||
---|---|---|---|---|
| ||||
curl -s 'http://localhost:8081/?action=stat&format=json&groups=buffer_stats' |
Добавление водяного знака в определенный поток
В сборке 5.2.693 появилась возможность добавлять в выходной поток транскодера водяной знак при создании транскодера по REST API, напримерумолчанию размер буфера составляет 5000 кадров
Для контроля работы выравнивающего буфера используется статистика, получаемая при помощи запроса
Code Block | ||||
---|---|---|---|---|
| ||||
curl -s 'http://localhost:8081/?action=stat&format=json&groups=buffer_stats' |
Добавление водяного знака в определенный поток
В сборке 5.2.693 появилась возможность добавлять в выходной поток транскодера водяной знак при создании транскодера по REST API, например
Code Block | ||||
---|---|---|---|---|
| ||||
{
"uri": "transcoder://tcode1",
"remoteStreamName": "test",
"localStreamName": "testT",
"encoder": {
"width": 640,
"height": 480,
"keyFrameInterval": 30,
"fps": 30,
"watermark": "Test.png"
}
} |
Если имя файла указано без пути, файл должен располагаться в каталоге /usr/local/FlashphonerWebCallServer/conf. Можно также указать полный путь к файлу, например
Code Block | ||||
---|---|---|---|---|
| ||||
{
"uri": "transcoder://tcode1",
"remoteStreamName": "test",
"localStreamName": "testT",
"encoder": {
"width": 640,
"height": 480,
"keyFrameInterval": 30,
"fps": 30,
"watermark": "/opt/media/Test.png"
}
} |
Динамическое добавление и изменение водяного знака
В сборке 5.2.1349 добавлена возможность динамически добавлять и изменять водяной знак, не останавливая транскодер и не публикую поток заново. Водяной знак может быть добавлен, изменен или перемещен в соотвествии с указанными координатами при помощи REST API запроса /transcoder2/set_watermark
Code Block | ||||
---|---|---|---|---|
| ||||
{ "uri": "transcodertranscoder2://tcode1", "remoteStreamNamewatermark": "test"/opt/media/logo.png", "localStreamNamex": "testT"10, "encoder": { "width": 640, "height": 480, "keyFrameInterval": 30, "fps": 30, "watermark": "Test.png" } } |
Если имя файла указано без пути, файл должен располагаться в каталоге /usr/local/FlashphonerWebCallServer/conf. Можно также указать полный путь к файлу, например
Code Block | ||||
---|---|---|---|---|
| ||||
{ "uri": "transcoder://tcode1", "remoteStreamName": "test", "localStreamName": "testT", "encoder": { "width": 640, "height": 480, "keyFrameInterval": 30, "fps": 30, "watermark": "/opt/media/Test.png" }y":10, "marginTop":5, "marginLeft":5, "marginBottom":5, "marginRight":5 } |
Здесь
- watermark - имя файла водяного знака
- x, y - координаты верхнего левого угла водяного знака на картинке потока
- marginTop, marginLeft, marginBottom, marginRignt - отступы от границ картинке потока
Если координаты выходят за границы картинки потока, водяной знак будет вписан в эти границы с учетом отступов.
Для того, чтобы переместить водяной знак в другое место на картинке, необходимо отправить запрос с тем же файлом, но новыми координатами. Чтобы убрать водяной знак с картинки, необходимо отправить запрос с пустым полем watermark
Code Block | ||||
---|---|---|---|---|
| ||||
{
"uri":"transcoder2://tcode1",
"watermark":""
} |
Многопоточное кодирование
...