Я пытаюсь транслировать свой рабочий стол на сервер Facebook RTMP с помощью устройства записи экрана:
ffmpeg -re -rtbufsize 256M -f dshow -i audio="Mikrofon (Realtek Audio)"
-rtbufsize 256M -f dshow -i audio="virtual-audio-capturer"
-rtbufsize 1024M -f dshow -i video=screen-capture-recorder -r 30
-filter:v scale=1280:720 -c:v h264_nvenc -pix_fmt yuv420p -preset fast
-b:v 8M -maxrate:v 10M -c:a aac -b:a 128k -ar 44100
-f flv rtmp://live-api.facebook.com:80/rtmp/..............
Я использую кодек h264_nvenc для ускорения GPU, но я могу передавать в RTMP только 12-18 кадров в секунду. Тем не менее, когда я поток в файл:
ffmpeg -re -rtbufsize 256M -f dshow -i audio="Mikrofon (Realtek Audio)"
-rtbufsize 256M -f dshow -i audio="virtual-audio-capturer"
-rtbufsize 1024M -f dshow -i video=screen-capture-recorder -r 30
-filter:v scale=1280:720 -c:v h264_nvenc -pix_fmt yuv420p -preset fast
-b:v 8M -maxrate:v 10M -c:a aac -b:a 128k -ar 44100
D:\test.mp4 -y
Я получаю 30 кадров в секунду без проблем, даже когда играю в игру (например. Call of duty 6, хорошенькая HW слива).
Кроме того, когда начинается потоковая передача (в rtmp), через некоторое время я продолжаю получать эту ошибку, хотя мой размер -rtbufsize составляет 1024M, что я считаю довольно большим, и многие кадры теряются:
real-time buffer too full or near too full! frame dropped!
Можете ли вы помочь мне, как предотвратить ошибку rtbufsize, и можно ли изменить мою команду, чтобы я мог передавать поток в rtmp со скоростью 30 кадров в секунду? Спасибо
При необходимости мой конфигурационный файл сборки ffmpeg:
ffmpeg версия 3.3.3 Copyright (c) 2000-2017 разработчики FFmpeg, созданные с конфигурацией gcc 7.1.0 (GCC): --disable-static --enable-shared --enable-gpl --enable-version3 --enable- cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable- gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable- libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable -libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib