Closed lp24db closed 1 year ago
Hi, for all svt encoders, it is not recommended to have multiple instances of the library running inside one application, as it is not tested and as far as I remember, all 3 use some global variables here and there which could lead to issues when trying to run them all. Additionally, all encoders are tunes on the assumption that there will be no other encoder within the same application.
It would be nice if you were able to use all SVTs on the same machine at same time. But if it is caused by design, it looks like it is not possible at all. thank you.
Hi there. I am testing the svt-vp9 in a self developed, ffmpeg-based encoder (written in c) and i'm very happy with it. My code is nearly identical to the transcoding-example of ffmpeg (no os ffmpeg call) Actually i am using libvpx for VP9 encodes and because of the bad multithreading i am forking serveral threads with libvpx instances in order to get a good performance. I recently switched to libsvt and did not reduce the threading algo. In this case (multiple instances of libsvt-vp9) i experienced a deadlock while transcoding files which cannot be resolved by myself. My dev-system runs on a Dual-Socket E5-2690v4 Xeon. I know that the svt-lib uses both sockets on all cores for the transcoding, so there would be no need for multiple instances but a did a test with libsvt-hevc and did not see any deadlock there - even with four or more multiple instances. So even there is no expectation in an improvement of overall speed using multiple instances, i'm not sure if this behaviour is correct. I was able to catch a stack trace and i see that the lib got stuck while acquiring a lock. If i only use a single libsvt-vp9 instance on one system, the issue does not occur. Maybe this helps to improve the stability. If it is not designed to run multiple, it is fine for me. I just wanted to clear, whether it could be a bug or not.
regards andreas