すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo Live:Windows用ネイティブRTS SDK

最終更新日:Aug 28, 2024

このトピックでは、ApsaraVideo LiveでRTSを使用するために、FFmpegに基づくサードパーティプレーヤーとNative RTS SDK for Windowsを統合する方法について説明します。

手順

このトピックでは、例としてMSYS2を使用してFFmpegをコンパイルします。 MSYS2インストールディレクトリで、mingw64.exeコマンドラインインターフェイスを開きます。

  1. ネイティブRTS SDKパッケージをダウンロードして解凍します。 ダウンロードURLの詳細については、「リリースノート」をご参照ください。

  2. rtsdec.cおよびrtsenc.cファイルをFFmpegベースのプレーヤーのlibavformatディレクトリにコピーします。

    Makefileファイルを変更します。 次の図に示すように、rtsdec.oファイルとrtsenc.oファイルの説明をMakefileファイルに追加します。

    001

  3. ARTCプロトコルをサポートするようにallformats.cファイルを変更します。

    002

    extern AVInputFormat  ff_rtc_demuxer;
  4. ffplay.cファイルを変更します。

    ffplay.c

    /* rtsライブラリをrtsプラグインに接続する
     * /
    struct rts_glue_funcs;
    extern const struct rts_glue_funcs *get_rts_funcs(int version);
    extern void av_set_rts_demuxer_funcs(const struct rts_glue_funcs *funcs);

    1.1

    || !strcmp(s->iformat->name, "artc")

    1

    av_set_rts_demuxer_funcs(get_rts_funcs(2));
  5. ffplay.cがあるMakefileファイルを変更します。

    2

    $(1)$(PROGSSUF)_g$(EXESUF): FF_EXTRALIBS += $(EXTRALIBS-$(1)) -lRtsSDK --verbose
    
    ifeq ($(TARGET_OS),windows)
    LDFLAGS += -L../../release/windows/x86_64/RtsSDK/lib/ -lRtsSDK
    endif
    ifeq  ($(TARGET_OS),mac)
      LDFLAGS += -L../../release/mac/x86_64/RtsSDK/lib -lRtsSDK
    endif
  6. コードをコンパイルして実行します。

    . /ffplay -i "artc:// <ストリーミングURL>"

    説明

    低遅延ストリーミングを使用するには:. /ffplay -fflags nobuffer -flags low_delay "artc:// <ストリーミングURL>"

    PREFIX_DIR=`pwd`/"build-out-windows"
    CFLAGS="$CFLAGS -DWIN32  -D_WIN32 -DNDEBUG"
    
    ./configure \
        --prefix=$PREFIX_DIR \
        --extra-cflags="$CFLAGS" \
        --enable-shared \
        --disable-static \
        --enable-gpl \
        --enable-nonfree \
        --enable-libfdk-aac \
        --disable-decoder=hevc \
        --disable-parser=hevc  \
        --disable-encoders  || exit 1
    
    make TARGET_OS=windows -j8 && make install  || exit 1
    cp /mingw64/bin/SDL2.dll ${PREFIX_DIR}/bin
    cp ../../release/windows/x86_64/RtsSDK/lib/RtsSDK.dll ${PREFIX_DIR}/bin
    echo "FFmpeg created in $PREFIX_DIR"