-
Notifications
You must be signed in to change notification settings - Fork 369
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
Bundle libsrt (support SRT protocol) #1619
Conversation
For some reason on OS X the .dylib is not found at runtime, try to use CMAKE_INSTALL_RPATH_USE_LINK_PATH.
This avoids picking up homebrew's libpng on OS X which may not be built for the target OS X version.
This avoids picking up homebrew's libintl on OS X which may not be built for the target OS X version.
- use Windows builds from gyan.dev - update to FFmpeg 4.3.2 - install ninja using pip - install zlib instead of building it - pin dav1d to version 0.9.2 - explicitly disable libxcb on Linux
cibuildwheel already sets MACOSX_DEPLOYMENT_TARGET
Implements the "mpeg4" codec that ffmpeg can already do.
We want to parse ASS/SSA, but we don't need rendering.
The old Docker environment must have changed. Moving libraries now doesn't work so stage 1 and 2 have been combined. I also cut out unneeded/problematic libraries like freetype. I'll see if libbluray and gnutls can be enabled again. openjpeg only implements jpeg2000, not jpeg or jpegxl, so that's why it's removed.
c9a54a3
to
ed063e6
Compare
It looks like PyAV already supports SRT (at least for decoding) if the user compiles libSRT in. This code installs libsrt for testing, but you don't need that right unless you have a srt protocol test. Look at https://github.com/PyAV-Org/PyAV-ffmpeg if you want to bundle libSRT in the pypi binary wheels. |
Thanks for the feedback. I'll check it out. Do you think an srt protocol test is necessary (or feasible)? |
Feasible? Yes. |
This will solve: #1503
Notes
SRT requires GnuTLS. Is there a cleaner way to install the package without globbing?
Testing
I would like to set up a test for this, but I don't know how to start streaming a video from within pyav. I was able to create a network live stream with ffmpeg like this:
ffmpeg -i local_file.mp4 -c:v libx264 -f mpegts 'srt://127.0.0.1:40052?mode=listener&latency=2000000'
I then opened the network stream in pyav with:
Pyav decoded the network stream and everything seemed to work.
If anyone knows how to create a network stream in pyav, I could write a test for this.