Я делаю что-то не так или у нас есть ошибка в API LiveStream? Как три разных источника могут отображать три разных имени в прямом эфире для одного и того же Ingestion?
По какой-то причине вставленный объект LiveStream приходит с ответом
это не соответствует веб-странице YouTube.
Разделы этого вопроса:
PHP-код для прямой трансляции
$streamSnippet = new \Google_Service_YouTube_LiveStreamSnippet();
$streamSnippet->setTitle($cameraName);
$cdn = new \Google_Service_YouTube_CdnSettings();
$cdn->setFormat($cameraName);
$cdn->setIngestionType('rtmp');
$streamInsert = new \Google_Service_YouTube_LiveStream();
$streamInsert->setSnippet($streamSnippet);
$streamInsert->setCdn($cdn);
$streamInsert->setKind('youtube#liveStream');
$liveStream = $youtube->liveStreams->insert('snippet,cdn',$streamInsert, array());
Результат API в $ liveStream
Google_Service_YouTube_LiveStream Object
(
[cdnType:protected] => Google_Service_YouTube_CdnSettings
...
[etag] => "5C5HHOaBSHC5ZXfkrT4ZlRCi01A/lY9i12sOWOAkTwfchEAQUxEWdX8"[id] => UOzxsX96_We6MrMTsP5RiA1480670405575117
[kind] => youtube#liveStream
...
[modelData:protected] => Array
(
...
[cdn] => Array
(
[format] => 1440p
[ingestionType] => rtmp
[ingestionInfo] => Array
(
[streamName] => 9zfr-ggd9-brtf-XXXX
[ingestionAddress] => rtmp://a.rtmp.youtube.com/live2
[backupIngestionAddress] => rtmp://b.rtmp.youtube.com/live2?backup=1
)
[resolution] => 1440p
[frameRate] => 30fps
)
)
...
)
PHP-код для трансляции & переплет
$broadcastInsert = new \Google_Service_YouTube_LiveBroadcast();
$broadcastInsert->setSnippet($broadcastSnippet);
$broadcastInsert->setStatus($status);
$broadcastInsert->setKind('youtube#liveBroadcast');
$broadcastsResponse = $youtube->liveBroadcasts->insert('snippet,status',$broadcastInsert, array());
$bindBroadcastResponse = $youtube->liveBroadcasts->bind($broadcastsResponse['id'],'id,contentDetails',array('streamId' => $liveStream['id'],));
Ответ на $ bindBroadcastResponse
Google_Service_YouTube_LiveBroadcast Object
(
...
[etag] => "5C5HHOaBSHC5ZXfkrT4ZlRCi01A/_2Jev_YmRlYUwMBX1ptq_Kp8uVs"[id] => idd8f7dSLzk
[kind] => youtube#liveBroadcast
...
[modelData:protected] => Array
(
[contentDetails] => Array
(
[boundStreamId] => UOzxsX96_We6MrMTsP5RiA1480670405575117
...
)
)
)
YouTube LiveStream API Explorer
Если я перечислю все потоки позже, используя LiveStream API Explorer, см. изображение ниже, я получил третий другой результат (см. код ниже).
{
"kind": "youtube#liveStreamListResponse",
"etag": "\"5C5HHOaBSHC5ZXfkrT4ZlRCi01A/RGcoFd2XK9IZmX0hgw_pFxuaeC4\"",
"pageInfo": {
"totalResults": 0,
"resultsPerPage": 5
},
"items": [
{
"kind": "youtube#liveStream",
"etag": "\"5C5HHOaBSHC5ZXfkrT4ZlRCi01A/d-ptvs6HC_oItk2Kv2PtrovurCk\"",
"id": "UOzxsX96_We6MrMTsP5RiA1480670405575117",
"snippet": ...,
"cdn": {
"format": "1440p",
"ingestionType": "rtmp",
"ingestionInfo": {
"streamName": "1wzh-zjwb-b0fr-XXXX",
"ingestionAddress": "rtmp://a.rtmp.youtube.com/live2",
"backupIngestionAddress": "rtmp://b.rtmp.youtube.com/live2?backup=1"},
"resolution": "1440p",
"frameRate": "30fps"}
}
]
}
резюмировать
PHP-> Google_Service_YouTube_LiveBroadcast[id] => idd8f7dSLzk
PHP-> Google_Service_YouTube_LiveStream->modelData[cdn][ingestionInfo][streamName] => 9zfr-ggd9-brtf-XXXX
API Explorer -> items[0].cdn.ingestionInfo.streamName => "1wzh-zjwb-b0fr-XXXX"
И результат на странице YouTube не совпадает
После очень Долгое время кто-то отвечал на ошибку, которую я заполнил в Google.
Это ответ от эта тема:
Это не обязательно ожидается для ключа потока, предоставляемого API
соответствовать ключу потока, предоставленному пользовательским интерфейсом. Однако если
два ключа потока разные, оба должны работать.Пожалуйста, ответьте на эту ошибку, если вы видите проблему, когда поток
ключи разные и работает только один из них.
Дело в том, что я ранее пытался привести в действие, используя имя потока, полученное из API, но это не сработало.
Тестирование сейчас, это работает.
Других решений пока нет …