Коллеги привет,
посоветуйте пожалуйста что можно сделать.
Необходимо получить видеопоток по WebRTC и рестримить его по RTMP на площадку Amazon Live Shoppable videos (https://www.amazon.com/live)
У Amazon вот такие требования к входящему потоку:
Через RestAPI запрашиваем все существующие рестримы (https://FLASHPHONERSERVER:8888/rest-api/push/find_all/):
Получаем такой ответ:
Если взять те же настройки (URL + STREAMKEY) и запустить OBS, указав настройки:
То трансляция запускается без ошибок.
Помогите пожалуйста советом, куда еще посмотреть? )
посоветуйте пожалуйста что можно сделать.
Необходимо получить видеопоток по WebRTC и рестримить его по RTMP на площадку Amazon Live Shoppable videos (https://www.amazon.com/live)
У Amazon вот такие требования к входящему потоку:
Транслируем видеопоток на сервер Flashphoner по WebRTC и после успешной публикации потока через RestAPI запускаем рестрим:Recommended broadcast software settings for Amazon Live
Video Resolution: 1280x720
Frames per second: 30
AVC Level: 31
Average bit rate: 2800 kbits/sec
Keyframe interval: 2 (we do not support keyframe intervals greater than 4 seconds).
For other software, set the keyframe interval to every 60 seconds.
JavaScript:
function publish(session) {
publishStream = session.createStream({
name: streamName,
display: localDisplay,
videoContentHint: "motion",
transport: "TCP",
stripCodecs: "vp8,VP8,ALAW,G722,PCMU,PCMA,flv,mpv",
constraints: {
audio: true,
video: false,
customStream: canvas.captureStream(30)
},
sdpHook: this.sdpHook,
}).on(STREAM_STATUS.PUBLISHING, function(streamEvent) {
addRestreamDestination("rtmp://rtmp.live.amazon.com/live" + "STREAMKEY");
});
publishStream.publish();
}
function sdpHook(sdp) {
var sdpStringFind1 = "c=IN (.*)\r\n";
var sdpStringReplace1 = "c=IN $1\r\nb=AS:10000\r\n";
var sdpStringFind2 = "a=fmtp:(.*) (.*)";
var sdpStringReplace2 = "a=fmtp:$1 $2;x-google-start-bitrate=2800;x-google-max-bitrate=4000;x-google-min-bitrate=2800";
var newSDP = sdp.sdpString.toString();
newSDP = newSDP.replace(new RegExp(sdpStringFind1, "g"), sdpStringReplace1);
newSDP = newSDP.replace(new RegExp(sdpStringFind2, "g"), sdpStringReplace2);
return newSDP;
}
async function addRestreamDestination(link) {
try {
const response = await fetch(urlFlashphonerRestApt + "/push/startup", {
method: 'POST',
body: JSON.stringify({
"streamName": streamName,
"width": 1280,
"height": 720,
"fps": 30,
"keyFrameInterval": 60,
"bitrate": 2800,
"rtmpUrl": link
}),
headers: {
'Content-Type': 'application/json'
}
});
const json = await response.json();
} catch (error) {
console.error('Error:', error);
}
}
Получаем такой ответ:
Amazon, отвечает ошибкой: "Encoder setup error: Bit rate varies from the recommended settings (recommended: 2,800,000)" и не запускает трансляцию.[{"mediaSessionId":"b1u1q2ag7spsvu10k75ab42ni0","streamName":"STREAMKEY","rtmpUrl":"rtmp://rtmp.live.amazon.com/live","rtmpFlashVersion":"LNX 76.219.189.0","rtmpTransponderStreamNamePrefix":"","width":1280,"height":720,"fps":30,"bitrate":2800,"keyFrameInterval":60,"rtmpTransponderKframeInterval":60,"muted":false,"soundEnabled":false,"rtmpTransponderForceKframeInterval":true,"rtmpTransponderFullUrl":true}]
Если взять те же настройки (URL + STREAMKEY) и запустить OBS, указав настройки:
То трансляция запускается без ошибок.
Помогите пожалуйста советом, куда еще посмотреть? )