Я пытаюсь отправить видео, снятое с IP-камеры (поток с IP-камеры ) через vlcj .Мой поток может быть получен с http://<phoneIP>:8080/video
Как я могу отправить видео через Java на YT, используя YouTube Streaming API?
Я видел документацию о Youtube Streaming Api и Youtube Data Api v3 , и, безусловно, мне удалось загрузить видео на мой канал, используя предоставленный ими код.
public static void main(String[] args) throws GeneralSecurityException, IOException, GoogleJsonResponseException {
YouTube youtubeService = getService();
// Define the Video object, which will be uploaded as the request body.
Video video = new Video();
// Add the snippet object property to the Video object.
VideoSnippet snippet = new VideoSnippet();
Random rand = new Random();
snippet.setCategoryId("22");
snippet.setDescription("Description of uploaded video.");
snippet.setTitle("Test video upload. "+ rand.nextInt());
video.setSnippet(snippet);
// Add the status object property to the Video object.
VideoStatus status = new VideoStatus();
status.setPrivacyStatus("unlisted");
video.setStatus(status);
File mediaFile = new File(FILE_PATH);
InputStreamContent mediaContent = new InputStreamContent("video/*",
new BufferedInputStream(new FileInputStream(mediaFile)));
mediaContent.setLength(mediaFile.length());
// Define and execute the API request
YouTube.Videos.Insert request = youtubeService.videos().insert("snippet,status",
video, mediaContent);
Video response = request.execute();
System.out.println(response);
}
Но в представленном ими коде о создание живого потока не представлена та часть, где вы фактически транслируете некоторый контент.
Спасибо!
РЕДАКТИРОВАТЬ 1 25.06.2019 / 17: 00
Я нашел поле с именем адрес для загрузки и заполнил его следующим образом: cdn.setIngestionInfo(new IngestionInfo().setIngestionAddress("http://192.168.0.100:8080/video"));
, но в YouTube Studio при запуске приложения ничего не отображается (как видно на фотографии ниже)
После некоторых копаний я обнаружил, что LiveBroadcast больше, чем LiveStream, и он может встраивать LiveStream.Пока что я взял код из LiveBroadcast, вставьте документы , представленные ниже.
public static void main(String[] args)
throws GeneralSecurityException, IOException, GoogleJsonResponseException {
YouTube youtubeService = getService();
// Define the LiveBroadcast object, which will be uploaded as the request body.
LiveBroadcast liveBroadcast = new LiveBroadcast();
LiveStream liveStream = new LiveStream();
// Add the contentDetails object property to the LiveBroadcast object.
LiveBroadcastContentDetails contentDetails = new LiveBroadcastContentDetails();
contentDetails.setEnableClosedCaptions(true);
contentDetails.setEnableContentEncryption(true);
contentDetails.setEnableDvr(true);
contentDetails.setEnableEmbed(true);
contentDetails.setRecordFromStart(true);
liveBroadcast.setContentDetails(contentDetails);
// Add the snippet object property to the LiveBroadcast object.
LiveBroadcastSnippet snippet = new LiveBroadcastSnippet();
snippet.setScheduledStartTime(new DateTime("2019-06-25T17:00:00+03:00"));
snippet.setScheduledEndTime(new DateTime("2019-06-25T17:05:00+03:00"));
snippet.setTitle("Test broadcast");
liveBroadcast.setSnippet(snippet);
// Add the status object property to the LiveBroadcast object.
LiveBroadcastStatus status = new LiveBroadcastStatus();
status.setPrivacyStatus("unlisted");
liveBroadcast.setStatus(status);
// Define and execute the API request
YouTube.LiveBroadcasts.Insert request = youtubeService.liveBroadcasts()
.insert("snippet,contentDetails,status", liveBroadcast);
LiveBroadcast response = request.execute();
System.out.println(response);
}
После запуска кода сверху я получил такой результат на YouTube Studio:
Теперь я не знаю, как объединить два или как интегрировать LiveStream в LiveBroadcast, чтобы я мог транслировать контент со своего телефона.
Еще раз спасибо!
РЕДАКТИРОВАТЬ 2 25.06.2019 / 17: 25
Я нашел функцию, которая может привязать поток к трансляции, но когда я открываю Live Control Room, я получаю это:
Все еще не удалось связать их, но я думаю, что я все ближе, может кто-то подтолкнуть меня в правильном направлении?