-
-
Notifications
You must be signed in to change notification settings - Fork 14.6k
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
ffmpeg: add librist #353473
ffmpeg: add librist #353473
Conversation
I tried to do the nixpkgs-review thing, but it doesn't seem to do anything. Sorry. ??
|
Please adjust your commit messages to follow the commit conventions where you prefix the commit message with the name of the component you changed followed by a column. e.g. Reword your commits using an interactive rebase and then force-push them to your branch. |
I'm not quite sure why nixpkgs-review isn't working for you but you shouldn't attempt to run it anyways because ffmpeg will cause thousands of package rebuilds that will take multiple days to perform on even a quite fast machine. It's enough if you can show that all versions of ffmpeg build and that the thing you intended to change works as it should. Speaking of which, could you summarise for us what RIST is useful for and how we could test that it works as expected? I'd also like to know whether this fits the criteria for being in the headless variant; is this something you'd customarily expect a distro's ffmpeg to ship or is this a niche thing that ffmpeg technically supports but barely anyone needs? |
14e3fdc
to
18d48aa
Compare
Thanks for the quick feedback! Commit message updated RIST is primarily used for packet loss recovery for multicast RTP streams https://en.wikipedia.org/wiki/Reliable_Internet_Stream_Transport RIST video RIST verse SRT video Honestly, I haven't been able to compile ffmpeg with rist before (after a lot of trying), so I'm excited to be able to try it out |
Please do actually test this and share with us a command or setup with which we can easily convince ourselves that this works as expected. Please also answer my second question. Please also note that most of us don't really have time to look into every feature in detail, so summaries are preferable to deep-dives. |
FWIW, OBS supports RIST. I don’t know if it’s The Future of Streaming (I remember hearing about some up‐and‐coming protocol recently that was meant to be, and it may have been RIST), but it’s definitely not irrelevant. Arch do not compile their FFmpeg with RIST support, but Fedora do. I do not know how mature FFmpeg’s RIST support is, or the code quality of the |
G'day. Thanks for the continued feedback. Sorry, I thought you might have been interested to understand more about RIST, and hope the links help others searching the Internets. RIST is mostly for improved resilience for multicast transport, and is in a lot of way an alternative to SRT. SRT is unicast only. RIST support was added to ffmpeg ~4 years ago. I don't know entirely how much testing was performed, but certainly enough for the ffmpeg core team. The commit is here: ffmpeg rist protocol documentation is here RIST is definitely a headless candidate, in that essentially to use this, you would receive or generate a stream, and add the RIST buffer on a "server" side. Then the RTP packets will traverse the network, and the downstream clients can send NACKs. Example command to send a udp MPEGTS stream with RIST buffer of 10seconds:
Example output
Highlighting key output line:
Thanks again, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good to me then.
The only thing left is to target staging because this will cause a ton of rebuilds as mentioned previously. I confirmed that the merge-base is in staging already, so no rebases are necessary. I'll simply switch it over for you.
Awesome! Thanks very much |
|
librist doesn't build for musl, which means this regressed building ffmpeg for musl. Fix is #355235. |
Things done
Add Reliable Internet Stream Transport (RIST) protocol to ffmpeg: librist
https://code.videolan.org/rist/librist
nix.conf
? (See Nix manual)NixOS
Tested on NixOSsandbox = relaxed
sandbox = true
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)To test building this I did a local override of the NIXPKGS:
Add a 👍 reaction to pull requests you find important.