-
-
Notifications
You must be signed in to change notification settings - Fork 359
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
Placeholder for potential future HX|H264 and HX|HEVC #738
base: master
Are you sure you want to change the base?
Conversation
This is just a non-compiling prototype stub for now. This may also require a non-trivial update to NDI SDK v5. It looks like some work for this may have already been done on some other forks or the `rewrite` branch.
@tt2468 Perhaps you already have more code fleshed out for https://github.com/Palakis/obs-ndi/blob/rewrite/src/obs-ndi-output.cpp#L29, but this something like this simple tweak may help to support HX|H264 and HX|HEVC output. (FYI, I'm the @NightVsKnight dude that was chatting with you earlier today on OBS Discord). |
I'll have to look into it deeper, but IIRC the ability to send encoded data over HX requires the advanced SDK, which has questionable licensing for usage. Supporting HX output would require its own output_t type, as outputs cannot switch between asking for raw frames and encoded packets. |
@tt2468 I was experimenting with creating a plugin from scratch using https://github.com/obsproject/obs-plugintemplate. I've so far only coded initializing NDI 5.5; it complies successfully but I have yet to test loading it in OBS. Lots of plagiarism in the name of science, and I was also experimenting with forking the plugintemplate so that I can keep the template up to date with any of its tweaks, but I'm thinking now that it would be better if I had just downloaded the template and created a plugin with no prior commit history. @Palakis 's, or hopefully an official first party plugin [although I can understand why OBS may not want to sanction a third party proprietary protocol], will always be the go to version, but I do want to experiment on my own with learning how to both use the NDI SDK [one day goal of writing both an Android and RPi Monitor, similar to https://orfast.com] and write an OBS plugin. Worst case, if I both get NDI|HX working in my plugin, and NDI requires a license to use it, then my version/fork/whatever could be designed to allow someone to drop in their NDI license to get to use. I am happy to keep my learning code pubic and credit your repo and let you/anyone plagiarize any of my code that may be useful. |
In a few places, such as above at #738 (comment), #870 (comment), #745 (comment) and on NDI Developer Zone on NewTek Forums issues with license of NDI Advanced SDK are mentioned. However, looking at the licenses, I was not able to find the relevant differences. If this has been investigated, is it possible to have more details about what is problematic with the license? |
A side-note: although I also would like to see NDI|HX support directly from within OBS Studio, a decent workaround is to use the NDI Bridge application in its "Local" mode. It picks up the NDI streams of OBS Studio, re-offers them under its own namespace, and once requested it encodes from NDI to NDI|HX just fine. We use this approach just fine in our company filmstudio for sending a dozen streams over just a 1 Gbps ethernet link. |
ABSOLUTELY DO NOT MERGE!
This is just a non-compiling prototype stub for now to get the conversation going.
This most likely will also require a non-trivial update to NDI SDK v5.
It looks like some work for this may have already been done on some other forks or the
rewrite
branch.https://github.com/Palakis/obs-ndi/tree/rewrite
Also related to #720
@Palakis I see that @tt2468 started a rewrite from scratch on 2021/07/18 and you last pushed on 2021/11/19.
I perused the code a little bit and saw that the meat of NDI output code is still empty:
https://github.com/Palakis/obs-ndi/blob/rewrite/src/obs-ndi-output.cpp
I see that you have also been mega busy with the excellent osb-websocket v5 rewrite.
Zero pressure on these questions, I am just curious:
If so then this PR could probably be abandoned.
If not, my initial goal for this branch from the
master
is to (cough) "simply":Other forks may have tried, and I am wondering if this effort would be well-served to attempt on
master
, or if anyone [still] attempting this would be better off waiting for the rewrite.