in media/transcoder/src/main/java/com/example/transcoder/CreateJobWithConcatenatedInputs.java [63:140]
public static void createJobWithConcatenatedInputs(
String projectId,
String location,
String inputUri1,
Duration startTimeInput1,
Duration endTimeInput1,
String inputUri2,
Duration startTimeInput2,
Duration endTimeInput2,
String outputUri)
throws IOException {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests.
try (TranscoderServiceClient transcoderServiceClient = TranscoderServiceClient.create()) {
VideoStream videoStream0 =
VideoStream.newBuilder()
.setH264(
VideoStream.H264CodecSettings.newBuilder()
.setBitrateBps(550000)
.setFrameRate(60)
.setHeightPixels(360)
.setWidthPixels(640))
.build();
AudioStream audioStream0 =
AudioStream.newBuilder().setCodec("aac").setBitrateBps(64000).build();
JobConfig config =
JobConfig.newBuilder()
.addInputs(Input.newBuilder().setKey("input1").setUri(inputUri1))
.addInputs(Input.newBuilder().setKey("input2").setUri(inputUri2))
.setOutput(Output.newBuilder().setUri(outputUri))
.addElementaryStreams(
ElementaryStream.newBuilder()
.setKey("video_stream0")
.setVideoStream(videoStream0))
.addElementaryStreams(
ElementaryStream.newBuilder()
.setKey("audio_stream0")
.setAudioStream(audioStream0))
.addMuxStreams(
MuxStream.newBuilder()
.setKey("sd")
.setContainer("mp4")
.addElementaryStreams("video_stream0")
.addElementaryStreams("audio_stream0")
.build())
.addEditList(
0, // Index in the edit list
EditAtom.newBuilder()
.setKey("atom1")
.addInputs("input1")
.setStartTimeOffset(startTimeInput1)
.setEndTimeOffset(endTimeInput1)
.build())
.addEditList(
1, // Index in the edit list
EditAtom.newBuilder()
.setKey("atom2")
.addInputs("input2")
.setStartTimeOffset(startTimeInput2)
.setEndTimeOffset(endTimeInput2)
.build())
.build();
CreateJobRequest createJobRequest =
CreateJobRequest.newBuilder()
.setJob(Job.newBuilder().setOutputUri(outputUri).setConfig(config).build())
.setParent(LocationName.of(projectId, location).toString())
.build();
// Send the job creation request and process the response.
Job job = transcoderServiceClient.createJob(createJobRequest);
System.out.println("Job: " + job.getName());
}
}