-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
figure out what floods the screen while running reprostim-videocapture #68
Comments
other ones now... apparently we should also raise the thread_queue_size option
which we do set explicitly:
and which is according to https://video.stackexchange.com/questions/25643/ffmpeg-thread-queue-size-warning-what-does-this-mean again -- we are not keeping up :-/ so I will reduce the |
even with
so I left it on |
hm, even a plain simplest |
While I am still unable to reproduce this issue with my local development environment, still some notes related to the issue: With fixes for issue #70 and issue #69 we have ffmpeg executed as subprocess monitored by background thread and all stdout/stderr outputs routed to reprostim-videocapture utility, also exists ability to restart all process starting from configuration on demand. If issue is related to some slow hardware or similar we can't make this hardware faster, but at least we can monitor ffmpeg output streams for these "DTS ..., next:.. st:0 invalid dropping/ALSA buffer xrun/etc" problems and somehow react to it. E.g. send message to repromon, or restart recording (but it can be tricky as well - eternal loop etc). IIUC to use ffmpeg in multithreading mode for transcoding we should first specify explicitly necessary numbers of threads, e.g. "-threads 4". In this case "thread_queue_size" will configure queue size for messages used in inter-thread communication. In my understanding large queue size only can help in some sporadic cases with low CPU resource, but in case of slow hardware applying to scheduled tasks in general it will not help, queue size will grow permanently till flood event. We migrated to the latest Magewell SDK (issue #63). In this SDK they added features like "mw_venc" an "mw_mp4". According to docs "mw_mp4" helps converting video/audio streams into *.mp4 and *.mov files. And "mw_venc" provides GPU-accelerated H.264 and H.265 encoding (but as far as I understand it should be machine with powerful video card rather than cheap top set box). With this approach standard recording with ffmpeg should be replaced by MWCapture SDK API. Just my 2c.. |
could you try that new functionality on your laptop/card to see what you would be getting and how it should make use of GPU and any particular GPU features would be needed? so if we are to replace the box, we choose in an informed fashion. |
* commit '61edd2954ec555d06fcaaa8243060cb1fbbaefc6': (24 commits) ScreenCapture added "interval_ms" options (work in progress). ScreenCapture separate snapshots subdirectory for each capture session (work in progress). ScreenCapture options in config.yaml (work in progress). ScreenCapture interactive process in separate thread (work in progress). ScreenCapture interactive process in separate thread (work in progress). Cosmetics in help message. Fix Install build dependencies error Fix Install build dependencies error ScreenCapture prototype (work in progress). Audio device optional configuration, enabled in VideoCapture and disabled in ScreenCapture #66 Entry point moved to main.cpp in VideoCapture and ScreenCapture projects #61 Normalize headers in CaptureLib/VideoCapture/ScreenCapture #61 Refactored ScreenCapture to reuse basic app code from reprostim::CaptureApp class #61 Refactored VideoCapture, basic app code moved to common reprostim::CaptureApp class #61 Moved common/shared C++ code to reprostim::CaptureLib library #61 Make ffmpeg execution processed by background thread rather than system() command #68 Make it possible to reload configuration if config file changes #69 Upon interruption (Ctrl-C) make it to exit gracefully #70 ScreenCapture project basis structure setup and CaptureLib work-in-progress Ported project to CMake-basis and created capturelib library with common capture functionality #61 ... Conflicts: Capture/videocapture/config.yaml -- Vadim has added --flush_packets 1 for ffmpeg options and removed pix_fmt. I took his version entirely -- yet to do changes in deployment
Regarding mw_venc and mw_mp4 - I was unable to quickly get any mp4 file sample from USB device and see how it works. Did quick research and from mentioned SDK 3.3.1.1313 samples with "mw_mp4" only AVCapture is compiled but it doesn't support USB devices family (only Pro and Eco series). Samples using mw_venc are not compiled on my environment at all (HDRCapture, HDRCaptureRecord, VideoEncode) - something wrong with libmw_venc.a binary or linker options there. In other words if we need to try this new functionality, code recording video from USB device should be created from scratch... |
Thank you for looking into it! I think then we should just postpone this line of inquiry. ffmpeg'ing seems to work ok enough (I hope) |
FTR -- today we added |
in the screen console we have it flooding
so there is overlap of something reported from ffmpeg I guess (that
bitrate=...
) and probably from our script on those DTS PTS... and see what it means for us.The text was updated successfully, but these errors were encountered: