【问题标题】:gstreamer playbin3 to kinesis pipeline: audio stream missinggstreamer playbin3 到 kinesis 管道:缺少音频流
【发布时间】:2020-12-31 01:31:57
【问题描述】:

首先,非常感谢 gstreamer 社区提供的出色软件。

我正在尝试使用 gstreamer 来使用 DASH/HLS/MSSS 流(使用 playbin3)并重新流式传输到 AWS Kinesis 视频:

gst-launch-1.0 -v -e \
playbin3 uri=https://dash.akamaized.net/dash264/TestCasesUHD/2b/2/MultiRate.mpd \
video-sink="videoconvert ! x264enc bframes=0 key-int-max=45 bitrate=2048 ! queue ! kvssink name=kvss stream-name=\"test_stream\" access-key=${AWS_ACCESS_KEY_ID} secret-key=${AWS_SECRET_ACCESS_KEY}" \
audio-sink="audioconvert ! audioresample ! avenc_aac ! kvss."

经过大量实验后,我决定不使用 uridecodebin3,因为它不能完全处理传入的流。

上述命令在 KVS 上产生视频流,但音频丢失。我尝试将 kvssink 移出 video-sink 管道并在两者中都以kvss. 的身份访问它,但链接失败。

我可以为音频和视频创建单独的 kvs 流,但希望将它们混合。

有谁知道这是否可能?我对其他堆栈持开放态度。

【问题讨论】:

    标签: gstreamer gstreamer-1.0 amazon-kinesis-video-streams


    【解决方案1】:

    已解决 只是在这里发帖,以防其他人遇到这个问题。 我已经使用streamlink 在本地通过 http 重新流式传输:

    streamlink <streamUrl> best --player-external-http --player-external-http-port <httpport>
    

    然后使用 gstreamer 的 java JNI 绑定来运行此管道:

    kvssink name=kvs stream-name=<streamname> access-key=<awskey> secret-key=<awssecret> aws-region=<awsregion> uridecodebin3 uri=http://localhost:<port> name=d d. ! queue2 ! videoconvert ! videorate ! x264enc bframes=0 key-int-max=45 bitrate=2048 tune=zerolatency ! queue2 ! kvs. d. ! queue2 ! audioconvert ! audioresample ! avenc_aac ! queue2 ! kvs.
    

    我需要使用 java 在缓冲不连续性时暂停和重新启动流,以免中断流。

    到达 kvs 的文件包含音频。

    【讨论】:

    • 您好,您可以发布 gst 命令以获取 Kinesis 的音频和视频吗?
    猜你喜欢
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多