ограничение скорости передачи видео от gstreamer к Kinesis - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь отправить файл mkv (см. Атрибуты ниже) в Kinesis Video Stream.Я хотел бы, чтобы FPS составлял 10-15 кадров в секунду.

> ffprobe testvideo02.mkv
...
Input #0, matroska,webm, from 'testvideo02.mkv':
  Metadata:
    ENCODER         : Lavf57.56.101
  Duration: 02:37:57.02, start: -0.007000, bitrate: 457 kb/s
    Stream #0:0: Video: h264 (Main), yuv420p(progressive), 488x360 [SAR 1:1 DAR 61:45], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
    Metadata:
      HANDLER_NAME    : VideoHandler
      DURATION        : 02:37:57.000000000
    Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
    Metadata:
      DURATION        : 02:37:57.021000000

Для передачи потока в KVS я использую командную строку GStreamer из amazon-kinesis-video-streams-producer-sdk-cpp.Я использовал разные ключи, это то, что я наконец-то получил, и это не работает:

gst-launch-1.0 filesrc location=testvideo02.mkv do-timestamp=TRUE \
    ! matroskademux ! decodebin \
    ! videorate drop-only=true ! video/x-raw,framerate=15/1,max-rate=15/1 \
    ! videoconvert \
    ! x264enc bframes=0 key-int-max=45 bitrate=2048 \
    ! video/x-h264,framerate=15/1 \
    ! kvssink stream-name=$STREAM_NAME framerate=15 \
    access-key=$AWS_ACCESS_KEY secret-key=$AWS_SECRET_KEY


[DEBUG][2019-04-22 19:22:44] Kinesis Video client and stream metrics
        >> Overall storage byte size: 134217728
        >> Available storage byte size: 133001418
        >> Allocated storage byte size: 1216310
        >> Total view allocation byte size: 86472
        >> Total streams frame rate (fps): 163
        >> Total streams transfer rate (bps): 25683152 (25081 Kbps)
        >> Current view duration (ms): 720
        >> Overall view duration (ms): 6000
        >> Current view byte size: 187371
        >> Overall view byte size: 1211851
        >> Current frame rate (fps): 163.493
        >> Current transfer rate (bps): 25683152 (25081 Kbps)
[DEBUG][2019-04-22 19:22:44] Curl post body write function for stream: bc-test1 and upload handle: 0 returned: {"EventType":"PERSISTED","FragmentTimecode":21600,"FragmentNumber":"91343852333182571337132286426569376608263492193"}

на стороне клиента (потребитель KVS) с другого сервера У меня FPS более 80.

Вопрос: Как мне получить FPS 15?

И худшая проблема: каждые 1-1,5 секунды на стороне потребителя у меня примерно 1 секунда "зависания" при получении данных.После этого он получает целые данные за это время и продолжает обработку.Не могу понять причину.Некоторые буферы?

...