Coder Social home page Coder Social logo

ofxndi's Introduction

ofxNDI

NewTek NDI SDK Wrapper for openFrameworks.

Works on Mac, iOS, Linux, and Windows.

For Linux users, please follow this Issue.
#27

I stopped to provide iOS lib because it is so big that significantly consume my GitHub storage.
please download it from NewTek.

Warning

  • This addon is trying to wrap all features of original SDK, but some of them are not tested.
  • Receivers on mobile OS won't work because they are not supported by SDK currently.

ofxndi's People

Contributors

2bbb avatar hiromtb avatar nariakiiwatani avatar roymacdonald avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ofxndi's Issues

libndi for Apple M1

Hi,

I'm currently moving my project to new M1 Chip MacBook Pro. But I found the NDI library only support x64 architecture on Mac.
Is there any update for the library?

Bounty on NDI 5 update

Hello! We'd like to offer a bounty to upgrade this plugin to NDI 5. Specifically, we're interested in the following features:

--IP-based genlock
--GPU acceleration
--UDP-based protocol

We can offer $500.

I know the work is likely worth more, but at the very least I want to let you know there's interest, and thank you for the work.

audio send receive examples corrupt audio

testing on OFX 0.10.1, osx 10.13.6, xcode 9.2, NDI 4.6.2
The left hand channel gets corrupted when sending audio. the right hand channel is ok.
some of the right hand audio gets added to the left channel.

I added a waveform render of the audio buffers to show what happens - see picture below, i am putting
a sinewave into the right hand channel only of my audio USB audio interface , but the application is sending both channels
(48khz, 2 channels setup) if I just send the left channel, the receiver shows a line(0) and a little bit of a waveform.

audio corrupt

multiple streams from and to multiple computers

Hi again.
I have a question and hope you know the answer.

If I have 3 computers each run my OF app.
Each app is sending the mic audio out via NDI.
Now I need those same 3 computers with those same OF apps, to receive the NDI audio from all the others.
Is that possible?
Do the received streams appear as separate inputs?
Do they have an ID or IP that can identify them by?

Thanks for your advice.

dyld: Library not loaded: @rpath/libndi.4.dylib

Hello, I'm trying to compile in XCODE 10 on macOs 10.13 and I got this error.

dyld: Library not loaded: @rpath/libndi.4.dylib
Referenced from: /Users/demmaone/Desktop/of_v0.11.0_osx_release/apps/myApps/kinect_ndi3/bin/kinect_ndi3Debug.app/Contents/MacOS/kinect_ndi3Debug
Reason: image not found

I've tryed adding the libndi.4.dylib file into Embebed Binaries and Linked Frameworks and Librarie but got no results.
I had no problem with the addon from thomasgeissl but I want to use yours becase it's newer and with a lot of great capabilities.
Sorry for the noob question. Cheers.

Receiver not working on Win10

Hello!

I can't seem to get the example-receiver working. Particularly, it looks like it is not seeing any sources... I keep polling for sources regularly, but the vector returned by ofxNDI::listSources() is always empty.

I have the example-sender running and I'm seeing the feed in the NDI Monitor app so I know it's going through. Also, when I run the example-router it can see the sender, which is super weird. I tried sending video from the NDI Test Patterns app but still nothing in the receiver app.

Do you have any ideas what could be the problem? Anything I should try?

audio sender

would it be possible to also send audio with NDI or just receive it?

do you happen to have some tips on how to implement this?

thanks a bunch

not receiving OSX

Of 0.10.1, osx 10.13.6, xcode 9.2.

Receiver does not see sender. sender works fine. NDI monitor app. shows video from sender correctly.

How can this be fixed?

TIA

example-sender - corrupt video on Linux

In example-sender the OF video grabber gets corrupted and and sends a faulty image. Note the video grabber preview in the sender is also corrupted.

Maybe pixel type is wrong ??
This seems to be a workaround, but means a copy(??)

void ofApp::update(){
	camera_.update();
			if(camera_.isFrameNew()) {
		//video_.send(camera_.getPixels()); //video gets corrupted by this call on linux
		ofPixels pix = camera_.getPixels();
		video_.send(pix);
	}

}

corrupted image:
corrupt

correct image:
ok

Lags with "Pixels" example

Hi ! Thanks for this addon !

When I'm trying your "example-sender", it's perfect and no lagging stream for the way :
video_.send(camera_.getPixels());
With camera_.getPixels().size() = 8294400
But this way lag a lot :
ofPixels pixels;
ofGetGLRenderer()->saveFullViewport(pixels);
video_.send(pixels);
while pixels.size() = 3145728

Is that normal ? Is there any optimization to do in code for streaming the principal canvas without lagging ?
Thx

Limit Bandwidth on Receiver

Hello,

is there a way to limit the used Bandwidth of a received video stream on the receiver?

many thanks,
Sebastian

osx library not loaded

Hi i tried your addon but i cant get it running on osx. It compiles fine but it is missing the library when i try to run.

dyld: Library not loaded: @rpath/libndi.3.dylib

I tried to add it to the run script with:
copy libndi.3.dylib to package target directory so self contained
cp -f ../../../addons/ofxNDI/libs/NDI/lib/osx/libndi.3.dylib "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/libndi.3.dylib";

Optional - seems to work with or without it - change orig path of @executable_path/libndi.3.dylib to target directory

install_name_tool -change ./libndi.3.dylib @executable_path/libndi.3.dylib "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME";

but still not working. Can you give me a hint?
Thanks in advance

ofxNDI compile for Linux

Is it possible to use this addon with Linux?
Intel platform would be ok, but RaspberryPi would be really nice.

Building ofxNDI for iOS

Do you have any ideas, why the example "example-sender-ios" wouldn't compile properly? I get the error:
Undefined symbols for architecture arm64: "_NDIlib_send_send_video_async_v2", referenced from: ofxNDI::Send::VideoStream::sendFrame(ofxNDI::VideoFrame const&) const in ofxNDISendStream.o "_NDIlib_send_send_video_v2", referenced from: ofxNDI::Send::VideoStream::sendFrame(ofxNDI::VideoFrame const&) const in ofxNDISendStream.o "_NDIlib_send_destroy", referenced from: ofxNDI::Send::Sender::~Sender() in ofxNDISender.o "_NDIlib_destroy", referenced from: ofxNDI::Send::Sender::~Sender() in ofxNDISender.o "_NDIlib_send_create", referenced from: ofxNDI::Send::Sender::setup(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, bool) in ofxNDISender.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

NDI 3.8

Do you have any plan on updating to the new 3.8 version?
I assume it's not just a matter of dropping in .dylib

thx

ofxNDI5 macOS 10.15.7 OF 11.2 build error for example-audio-receiver

I am trying to compile the example-audio-receiver example but get the following error.
I am on a MBP with i9 chip.

Screen Shot 2022-08-20 at 11 06 17 AM

Undefined symbols for architecture x86_64:
  "_NDIlib_framesync_free_audio_v2", referenced from:
      ofxNDI::Recv::FrameSyncAudio::freeFrame(NDIlib_audio_frame_v3_t&) in ofxNDIRecvStream.o
  "_NDIlib_framesync_capture_audio_v2", referenced from:
      ofxNDI::Recv::FrameSyncAudio::captureFrame(NDIlib_audio_frame_v3_t&) in ofxNDIRecvStream.o
  "_NDIlib_recv_free_audio_v3", referenced from:
      ofxNDI::Recv::Stream<NDIlib_audio_frame_v3_t, ofxNDI::Recv::Receiver>::freeFrame(NDIlib_audio_frame_v3_t&) in ofxNDIRecvStream.o
  "_NDIlib_recv_destroy", referenced from:
      ofxNDI::Recv::Receiver::~Receiver() in ofxNDIReceiver.o
  "_NDIlib_destroy", referenced from:
      ofxNDI::Recv::Receiver::~Receiver() in ofxNDIReceiver.o
  "_NDIlib_recv_get_no_connections", referenced from:
      ofxNDI::Recv::Receiver::isConnected() const in ofxNDIReceiver.o
  "_NDIlib_framesync_destroy", referenced from:
      ofxNDI::Recv::Receiver::createFrameSync() in ofxNDIReceiver.o
      ofxNDI::Recv::Receiver::~Receiver() in ofxNDIReceiver.o
  "_NDIlib_framesync_create", referenced from:
      ofxNDI::Recv::Receiver::createFrameSync() in ofxNDIReceiver.o
  "_NDIlib_recv_create_v4", referenced from:
      ofxNDI::Recv::Receiver::setup(ofxNDI::Source const&, ofxNDI::Recv::Receiver::Settings const&) in ofxNDIReceiver.o
  "_NDIlib_find_wait_for_sources", referenced from:
      void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, ofxNDI::Find::Finder::watchSources(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >)::$_0, NDIlib_find_create_t> >(void*) in ofxNDIFinder.o
  "_NDIlib_util_audio_to_interleaved_32f_v2", referenced from:
      bool ofxNDI::Frame::decode<NDIlib_audio_frame_v3_t, ofSoundBuffer>(NDIlib_audio_frame_v3_t const&, ofSoundBuffer&) in ofxNDIFrame.o
  "_NDIlib_recv_capture_v3", referenced from:
      ofxNDI::Recv::Stream<NDIlib_audio_frame_v3_t, ofxNDI::Recv::Receiver>::captureFrame(NDIlib_audio_frame_v3_t&) in ofxNDIRecvStream.o
  "_NDIlib_find_create_v3", referenced from:
      void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, ofxNDI::Find::Finder::watchSources(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >)::$_0, NDIlib_find_create_t> >(void*) in ofxNDIFinder.o
  "_NDIlib_find_get_current_sources_v2", referenced from:
      void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, ofxNDI::Find::Finder::watchSources(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >)::$_0, NDIlib_find_create_t> >(void*) in ofxNDIFinder.o
  "_NDIlib_find_destroy", referenced from:
      void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, ofxNDI::Find::Finder::watchSources(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >)::$_0, NDIlib_find_create_t> >(void*) in ofxNDIFinder.o
  "_NDIlib_recv_connect", referenced from:
      ofxNDI::Recv::Receiver::changeConnection(ofxNDI::Source const&) in ofxNDIReceiver.o
  "_NDIlib_initialize", referenced from:
      ofxNDI::Find::Finder::watchSources(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >) in ofxNDIFinder.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

send ofFloatPixels with 4bytes per channel

Hi,

is there an easy way to send a 4bytes per channel color image? I noticed if I send a ofFloatImage (4 channels / 4byte per channel) it gets converted to a ofImage with only 1 bytes per channel.

I studied the source code but have a hard time to understand how and if it's possible to archive what I am trying to do.

"[warning] ofxNDI : this pixel format is not supported:"

Hi !
Thanx again for your amazing NDI library for OF ;-) ! I'm using it for my
I always have this warning message on OpenFrameworks when using the receiver video example :

[warning] ofxNDI : this pixel format is not supported:

Is that normal ?

Thx

Can't compile on OSX

Dear NariaKiiwatani,

do you have a Xcode project, you could share with me / us?

I have a linker problem und cant find the error. Would love to use your addon for my next project.

Thanks a lot,
Sebastian

No luck with NDI 5 on OS X

Hello @nariakiiwatani !

I previously reported this issue deep in the thread in this issue.
Reporting it here since it is a different issue that what the issue title suggests; perhaps others trying will find it more easily.

I returned to this after I saw that the NDI advanced SDK was updated; I'm now working with libndi_advanced.dylib from Nov 2, 2021. I just tried again, with the latest on my M1 mac and I continue to have the same issue:

  • I'm using the NDI HX Camera app on Android to send a stream over wifi
  • I'm able to see the NDI source and receive video in Millumin (my testing app)
  • I see no sources available in OFX with
  • My setup is: Mac OS 11.5.2 (20G95), OFX 0.11.2, and the latest NDI 5 branch

image

Any thoughts?

iOS sender not work?

I am a newbie of the iOS Swift developer so I really appreciate the great work you made here!

I was testing the iOS sender with Mac receiver example. While the camera has been turned on but it doesn't seems to broadcast to the network. I test the NDI HX camera app to connect the example mac receiver, and it works really well!

So question is the iOS sender. I did notice that official NDI app ask the privacy inquiry of Local Network Usage, while the example app from 3 years ago probably not do. I tried to add a row of Privacy - Local Network Usage Description into .plist but it looks like takes not effect...

Any idea to fix it? Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.