DJI Windows SDK: What is the API procedure of saving the recorded video of Mavic 2 Pro on the SD card - dji-sdk

I'd like to know what API from their reference manual to use when I would like to save the recorded video on the SD card with Mavic 2 Pro. I believe that one cannot save video directly on the computer without perhaps using DJI Assistant 2 or so? In their manual (51169 p. 32) for the drone it says that regarding the flight recorder "other parameters" will be automatically saved to the drone's internal data recorder. This internal data recorder, is it referred to its micro SD card? If so, will all default recordings be automatically saved to that SD card? And if still so, is there a way to retrieve these video files via the computer in the code or only through DJI Assistant 2?
My intention is to do something with this video via the computer at the same time running the software I am working on developing (application) in Visual Studio, not to use several different applications. In normal use case scenario as described above, by, I believe, default procedure, would be to record the video, and have it accessed through the Assistant 2 app, and copy that video file over to the application I am working on, and from there present some options to the user with the video, like replay it faster.

Related

Microsoft SysVAD Virtual Audio Device Driver (SYSVAD) cannot work

This driver (https://github.com/Microsoft/Windows-driver-samples/tree/master/audio/sysvad) is provided by Microsoft. And in its README, the last part, it says:
Locate an MP3 or other audio file on the target computer and
double-click to play it. Then in the Sound dialog box, verify that
there is activity in the volume level indicator associated with the
SYSVAD (with APO Extensions) driver.
But in my target computer, the volume level indicator associated with the SYSVAD (with APO Extensions) driver does not change at all. And the target computer does not make any sound.
The same case to the mic, when set default mic to any of the sysvad mic array, the mic volume level will not change at all.
In my understanding, sysvad driver is virtual driver. So it will not really work. But why Microsoft README says: there is activity in the volume level indicator associated with the SYSVAD (with APO Extensions) driver.
The SYSVAD documentation leaves a lot to be desired. You won't see any activity in the volume level indicator, and you won't hear anything, since the only thing the rendering endpoints do is save a copy of the audio output to file (look for C:\STREAM_HOST_*.wav files).
The capture endpoints (including the "loopback" pins) generate constant sine-wave signals, which you can see if you use an app to record them, and then view them in a sound editor/viewer or play them back out to a real device.
I am working on SysVad too and sure it works, for Mic you can test with vlc player
Try to open the virtual mic from VLC and then you will hear sound, it's a sin wave generated by driver itself

Does DJI Mobile App iOS SDK give access to all the features available in DJI GO App?

I have an app that captures photos, add some additional details and send the images to my server that is currently used in an enterprise setup. I would like to add DJI Framework so the images captures thru the drone (thinking of Phantom 3) go thru the same workflow.
I DO NOT want the user to use 2 different apps (DJI GO to control the drone and capture photos) and our custom app to (import from DJI) and upload the photos to server. Would rather have everything as part of my custom App.
In the DJI SDK, most of the features are supported in the framework. Also, there is a sample app which is involved in the framework. I suggest to go through the code and find out which feature you want to use and implement in your app. Technically, you could implement you own 'DJI Go App' except some of features which require respond from DJI Sever.
You are trying to make custom image manipulation after recording the images from DJI drone
Following are the steps you have to consider for the app
Use DJI SDK for image capture
After capturing the image is finished then manipulate the images using OpenCV framework.
Post the data to server
You can also follow tutorial provided by them:
https://developer.dji.com/mobile-sdk/documentation/ios-tutorials/PanoDemo.html

How to programatically send data over bluetooth from windows 7 laptop?

I am working a project from my school. We are using a microcontroller to send integers over bluetooth (Sparkfun's bluesmirf) to an android device.
Because different people need the microcontroller I am wondering if it is possible to programmatically send send data over bluetooth to my android phone via my laptop's bluetooth?
I previously was testing we CoolTerm, but I am only able to send data manually by pressing the Enter key each time.
I want to create a loop that sends a random number (12 digit long) over and over (differnet int each time) from my HP Pavilion DV7 laptop? I am using Windows 7 Ultimate, and Coolterm 1.4.1.
My solution to this problem was using RealTerm.
I creared a *.txt file with the ints in each line (copy+paste from Excel table - made it easier). Then, after I connect to the Laptop's bluetooth port under the Port tab, I go to the Send tab and use the Dump File To Port option and add the *.txt file I created. Also, I used 999 as delay to send each line every 999miliseconds, and under repeats I changed from 1 to 0 in order to make it reapet until i press Stop.
Check out this Codeplex project - http://32feet.codeplex.com/ it allows you to open up Bluetooth sessions using C# through the native Windows stack. It will also allow a Bluetooth Serial Port (SPP) session which is what you'll want to use to connect to your device. The project is fairly longstanding and has a good amount of documentation on the site or on blogs if you Google.

capture video from screen for stream

i am looking for differnt solutions to capture video stream from monitor screen and send it to vidoestreaming server to broadcast in web. it must occuring in "live".
i'd not like to use external services like "procaster" for broad.
OS: Windows.
it will be great to know the ideas and expirience people have to accomplish that.
Thanks all.
Recently, I build a GoLang project called ScreenStreamer, is a tool to stream current active window or full screen (Linux's or Windows's) to other device, like phone or another PC, as MJPEG over http or FLV over rtmp, it's very realtime (delay < 100ms). It works on Windows and Linux.
After building it, you can run it as:
# enter the project root directory
cd ./src/ScreenStreamer
# run it
./mjpeg or .\mjpeg.exe
# use a web browser or other video player, open http://host:port/mjpeg
./rtmp or .\rtmp.exe
# use a video player, open rtmp://host:port/live/screen
Screenshot:
Windows SDK includes Push Source Filters Sample, which in turn contains CPushSourceDesktop filter/class.
CPushSourceDesktop: Copy of current desktop image (GDI only)
It captures desktop image and pushes it into DirectShow pipeline. From there on you can process it using video compression codec and stream it to remote location. A decent screen image compression codec is included with Windows Media subsystem, network streaming will have to be a custom or third party component. Alternatively, it is possible to make the capture class a virtual camera and have Windows Media Encoder broadcast it (or, it already has a simila feature built in).
Alternatively, you can check VNC (or one of the clones) source code and see how it hooks windows and captures image updates, then compresses them and makes it available for remote applications.
Note that you will have to specifically capture non-GDI images (such as coming from video/gaming applications, which use hardware acceleration and non-RGB surffaces).

Device driver to act as a virtual web camera

I'm looking for writing virtual camera drivers. Does anybody has idea?
Any book that would be helpful or any link.
Adding more details:
I have developed a device driver which saves the image to disk and the display uses the device driver to display the image. The performance does not seem good.
The fns. that I have used are:
//to capture
GetDesktopWindow()
CreateCompatibleBitmap()
Save()
//to display
WM_MOUSEMOVE
giving a call to capture and display every time
but the display is not continuous and appears only after window goes out of focus and comes in focus again
Should I use some other technique to record or display images, what will give fruitful results, please help.
Thanks,
-mitesh
What do you mean by virtual camera driver?
It is possible to write a virtual capture device using DirectShow. Such a virtual capture device can then be used by applications such as skype, etc. If that suffices for your needs, you can download vcam from http://tmhare.mvps.org/downloads.htm under the "Capture Source Filter" link.
Edit:
In order to use that capture device in the link I posted you need to download the Windows SDK. The Windows SDK has a tool called "GraphEdit" If you search online, I'm sure you can find a quick GraphEdit tutorial. Basically GraphEdit allows you to construct a multimedia pipeline by connecting a bunch of filters. (This is what happens in the background for instance when you play a movie on your computer. ) This could be something like
web cam -> renderer
or
file source -> some decoder -> renderer
and would result in you seeing the video captured by the web cam or the content of the file. The example download shows how you can construct a virtual capture device i.e. it looks like media is coming from a 'real' capture device, but actually you can generate any video you want if you adapt the code to your specific means i.e. take a screengrab and output that. Applications like skype can pick up you virtual capture device if it is registered correctly.
The easiest way to find out if this is sufficient for your needs is to download the capture source filter, register it with the regsvr32 command, and then to use GraphEdit to insert the capture source into a graph, connect the source to a video renderer and hit the play button. A lot of the above mentioned concepts/keywords might seem new to you, but you can do some reading on each topic, and perhaps this will give you a point to get started.
Edit 2:
Is the capture source filter approach not sufficient for your requirements?
1) AFAIR you stated in your (now deleted) answer that you would like to take a screen grab, and use that as a virtual camera device for use in applications such as skype.
If that is all you require, you do NOT have to write a device driver. DirectShow can do that perfectly well by means of the capture source filter. You would then need to
learn some basic DirectShow
modify the source code of the capture filter to take screen grabs etc.
As far as books are concerned to write device driver to accomplish the same, I have no idea. The point I'm trying to make, is that you need to determine whether you actually need to write a device driver or whether simply modifying the open source capture filter is sufficient.

Resources