You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用GCS Transcoder API合并独立的视频和音频文件

GCS Transcoder API分离音视频合并配置方案

问题原因

现有配置仅声明了两个输入资源和输出音视频流参数,未建立输入资源与输出流的映射关系,导致Transcoder API无法正确读取两个输入的内容进行合并。

修正后配置

gcs_video = "gcs://abc/video.mp4"
gcs_audio = "gcs://abc/audio.mp4"
video_input = transcoder_v1.types.Input(key="input0", uri=gcs_video)
audio_input = transcoder_v1.types.Input(key="input1", uri=gcs_audio)

job.config = transcoder_v1.types.JobConfig(
            inputs=[video_input, audio_input],
            # 新增编辑列表,映射输入流到输出基础流
            edit_list=[
                transcoder_v1.types.EditAtom(
                    key="atom0",
                    inputs=[
                        transcoder_v1.types.EditAtom.Input(
                            key="input0",
                            channel=0
                        ),
                        transcoder_v1.types.EditAtom.Input(
                            key="input1",
                            channel=0
                        )
                    ],
                    start_time_offset=transcoder_v1.types.duration_pb2.Duration(seconds=0),
                )
            ],
            elementary_streams=[
                transcoder_v1.types.ElementaryStream(
                    key="video-stream0",
                    video_stream=transcoder_v1.types.VideoStream(
                        h264=transcoder_v1.types.VideoStream.H264CodecSettings(
                            height_pixels=720,
                            width_pixels=1280,
                            bitrate_bps=2500000,
                            frame_rate=30,
                        ),
                    ),
                ),
                transcoder_v1.types.ElementaryStream(
                    key="audio-stream0",
                    audio_stream=transcoder_v1.types.AudioStream(
                        codec="aac", bitrate_bps=64000
                    ),
                ),
            ],
            mux_streams=[
                transcoder_v1.types.MuxStream(
                    key="hd",
                    container="mp4",
                    elementary_streams=["video-stream0", "audio-stream0"],
                ),
            ],
        )

配置说明

  • edit_list段用于定义时间轴上的内容拼接规则,这里因为两个输入时长完全一致,无需额外裁剪,直接设置起始时间为0即可覆盖全时长
  • 每个EditAtom.Input条目分别关联你定义的两个输入资源,channel参数指定读取输入的第0条流(你的两个输入分别只有视频、音频单条流,所以都填0即可)
  • 该配置完全兼容后续叠加层、多码率多格式输出需求,后续只需在现有结构基础上新增overlay配置、多套elementary_streams和mux_streams即可,无需修改现有音视频映射逻辑

内容的提问来源于stack exchange,提问作者Thomas Spycher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:54:04