gpt4 book ai didi

ffmpeg - 使用 GPU 将 RTMP 流解码为静止帧时减少 CPU

转载 作者:行者123 更新时间:2023-12-04 23:23:24 26 4
gpt4 key购买 nike

我正在尝试连接到 RTMP 流(以 30 FPS 流式传输)并将输入过滤为 1 FPS 并将其输出为 rawvideo。我正在运行当前

ffmpeg -surfaces 8 -vcodec h264_cuvid -vsync 0 -i rtmp://serveraddress -filter_complex [0]fps=fps=1[s0] -map [s0] -f rawvideo -pix_fmt rgb24

该系统在 T4 Tesla 上运行。该应用程序需要大约 20 个 ffmpeg 进程才能启动,但我注意到 CPU 使用率非常高。反正有没有优化这个?

谢谢

最佳答案

看起来需要更多关于 ffmpeg 输入区域的选项

添加选项 -hwacccel cuvid看起来像下面
ffmpeg -hwaccel cuvid -surfaces 8 -vcodec h264_cuvid -vsync 0 -i rtmp://serveraddress -filter_complex [0]fps=fps=1[s0] -map [s0] -f rawvideo -pix_fmt rgb24
需要通过h264_cuvid查看实际执行情况

因此,您需要通过 -loglevel debug 跟踪执行有关 ffmpeg 操作的信息ffmpeg -hwaccel cuvid -surfaces 8 -vcodec h264_cuvid -vsync 0 -i rtmp://serveraddress -filter_complex [0]fps=fps=1[s0] -map [s0] -f rawvideo -pix_fmt rgb24 -loglevel debug-f rawvideo选项在cpu下执行

如果您需要 gpu 加速器,请检查下面的选项
ffmpeg -hwaccel cuvid -surfaces 8 -vcodec h264_cuvid -vsync 0 -i rtmp://serveraddress -filter_complex [0]fps=fps=1[s0] -map [s0] -c:v h264_nvenc -preset hqll -pix_fmt rgb0

  • h264_nvenc下面的选项引用

  • Encoder h264_nvenc [NVIDIA NVENC H.264 encoder]:
    General capabilities: delay hardware
    Threading capabilities: none
    Supported pixel formats: yuv420p nv12 p010le yuv444p p016le yuv444p16le bgr0 rgb0 cuda
    h264_nvenc AVOptions:
    -preset <int> E..V..... Set the encoding preset (from 0 to 11) (default medium)
    default E..V.....
    slow E..V..... hq 2 passes
    medium E..V..... hq 1 pass
    fast E..V..... hp 1 pass
    hp E..V.....
    hq E..V.....
    bd E..V.....
    ll E..V..... low latency
    llhq E..V..... low latency hq
    llhp E..V..... low latency hp
    lossless E..V.....
    losslesshp E..V.....
    -profile <int> E..V..... Set the encoding profile (from 0 to 3) (default main)
    baseline E..V.....
    main E..V.....
    high E..V.....
    high444p E..V.....
    -level <int> E..V..... Set the encoding level restriction (from 0 to 51) (default auto)
    auto E..V.....
    1 E..V.....
    1.0 E..V.....
    1b E..V.....
    1.0b E..V.....
    1.1 E..V.....
    1.2 E..V.....
    1.3 E..V.....
    2 E..V.....
    2.0 E..V.....
    2.1 E..V.....
    2.2 E..V.....
    3 E..V.....
    3.0 E..V.....
    3.1 E..V.....
    3.2 E..V.....
    4 E..V.....
    4.0 E..V.....
    4.1 E..V.....
    4.2 E..V.....
    5 E..V.....
    5.0 E..V.....
    5.1 E..V.....
    -rc <int> E..V..... Override the preset rate-control (from -1 to INT_MAX) (default -1)
    constqp E..V..... Constant QP mode
    vbr E..V..... Variable bitrate mode
    cbr E..V..... Constant bitrate mode
    vbr_minqp E..V..... Variable bitrate mode with MinQP (deprecated)
    ll_2pass_quality E..V..... Multi-pass optimized for image quality (deprecated)
    ll_2pass_size E..V..... Multi-pass optimized for constant frame size (deprecated)
    vbr_2pass E..V..... Multi-pass variable bitrate mode (deprecated)
    cbr_ld_hq E..V..... Constant bitrate low delay high quality mode
    cbr_hq E..V..... Constant bitrate high quality mode
    vbr_hq E..V..... Variable bitrate high quality mode
    -rc-lookahead <int> E..V..... Number of frames to look ahead for rate-control (from 0 to INT_MAX) (default 0)
    -surfaces <int> E..V..... Number of concurrent surfaces (from 0 to 64) (default 0)
    -cbr <boolean> E..V..... Use cbr encoding mode (default false)
    -2pass <boolean> E..V..... Use 2pass encoding mode (default auto)
    -gpu <int> E..V..... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from -2 to INT_MAX) (default any)
    any E..V..... Pick the first device available
    list E..V..... List the available devices
    -delay <int> E..V..... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX)
    -no-scenecut <boolean> E..V..... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false)
    -forced-idr <boolean> E..V..... If forcing keyframes, force them as IDR frames. (default false)
    -b_adapt <boolean> E..V..... When lookahead is enabled, set this to 0 to disable adaptive B-frame decision (default true)
    -spatial-aq <boolean> E..V..... set to 1 to enable Spatial AQ (default false)
    -temporal-aq <boolean> E..V..... set to 1 to enable Temporal AQ (default false)
    -zerolatency <boolean> E..V..... Set 1 to indicate zero latency operation (no reordering delay) (default false)
    -nonref_p <boolean> E..V..... Set this to 1 to enable automatic insertion of non-reference P-frames (default false)
    -strict_gop <boolean> E..V..... Set 1 to minimize GOP-to-GOP rate fluctuations (default false)
    -aq-strength <int> E..V..... When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive) (from 1 to 15) (default 8)
    -cq <float> E..V..... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)
    -aud <boolean> E..V..... Use access unit delimiters (default false)
    -bluray-compat <boolean> E..V..... Bluray compatibility workarounds (default false)
    -init_qpP <int> E..V..... Initial QP value for P frame (from -1 to 51) (default -1)
    -init_qpB <int> E..V..... Initial QP value for B frame (from -1 to 51) (default -1)
    -init_qpI <int> E..V..... Initial QP value for I frame (from -1 to 51) (default -1)
    -qp <int> E..V..... Constant quantization parameter rate control method (from -1 to 51) (default -1)
    -weighted_pred <int> E..V..... Set 1 to enable weighted prediction (from 0 to 1) (default 0)
    -coder <int> E..V..... Coder type (from -1 to 2) (default default)
    default E..V.....
    auto E..V.....
    cabac E..V.....
    cavlc E..V.....
    ac E..V.....
    vlc E..V.....
    -b_ref_mode <int> E..V..... Use B frames as references (from 0 to 2) (default disabled)
    disabled E..V..... B frames will not be used for reference
    each E..V..... Each B frame will be used for reference
    middle E..V..... Only (number of B frames)/2 will be used for reference
    -a53cc <boolean> E..V..... Use A53 Closed Captions (if available) (default true)

    如果您需要有关比特率、质量、像素格式的更多 gpu 加速器信息.. 随便
    检查这个 Link

    !重要的

    如果您优化有关 gpu 加速器的工作,请查看 GPU Matrix TableFFmpeg GPU Transcoding Guide

    它可以减少错误。

    如果您需要更多信息,请喂我

    关于ffmpeg - 使用 GPU 将 RTMP 流解码为静止帧时减少 CPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59934914/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com