Android ip cameraX, camera2 in kotlin - kotlin

I quite new to android video recording and sharing.
Let say I've got two Android devices D1 and D2
In D1 I split screen in to do parts, in the top part I display camera view from D1(cameraX), and in the bottom part of the screen I need to get camera view from D2. Devices are connected to the same wifi network.
How to stream video from D2 to D1 using same wifi network?
It is possible using cameraX?
The lowest app API is 23

There's no built-in Android APIs for easily streaming video data from one device to another. You could see if you can use WebRTC or similar to make your life easier.
You can certainly use CameraX to get the camera frames from D1 and D2's cameras - for example, on D2, the ImageAnalysis use case will give you YUV frames you should be able to pass into WebRTC and over to D1.

Related

Pull Single Frame from Video Feed (DJI Mobile SDK)

I am making a DJI Mobile SDK app and have setup an application that gets live video from the drone and displays it in a view, but I need to pull a single frame from the video feed to work with and cannot figure out how to do it!
One method would be to take a picture with the drone and then download it from the SD card, but I do not require the full resolution image and it feels like there must be a simple method to just get a single frame from the video preview.
The code which casts the video stream is:
-(void)videoFeed:(DJIVideoFeed *)videoFeed didUpdateVideoData:(NSData *)videoData {
[[DJIVideoPreviewer instance] push:(uint8_t *)videoData.bytes length:(int)videoData.length];
}
any ideas on how to pull an individual from from the feed? Or maybe is there a way to have an iOS app just take a screenshot and work with that?
Thanks!
Im not very familiar with IOS. for android there is a sample which use DJI msdk to grab the still images and use the image for Panorama stitching https://github.com/DJI-Mobile-SDK-Tutorials/Android-PanoramaDemo.
The equivalent IOS version of Panorama stitching is here. https://github.com/DJI-Mobile-SDK-Tutorials/iOS-PanoramaDemo
Maybe you can get idea on how to grab the still image from there.
There are several threads about this in android.
Ios would not be different i think.
how to get bitmap data from drone camera stream. android application
Get the bitmap from the fpvWidget is by far the simpliest and fastest solution.
public Bitmap getFrameBitmap() {
return fpvWidget.getBitmap();
}

How to implement live-videostreaming within a-frame?

I want to implement live 360 video using Theta s camera. I already have done implementation
using three.js for showing images in 360 and live audio stream using WEB RTC.
I found implementation using a-frame for images and video but I couldn't find anything on how to implement using live stream in 360 from my camera input. My question
is how to get the input from my Theta s camera and to show in 360 perspective.
My idea is to get the video from my camera input, to glue on a ball object and to be shown on full screen.

Yellowstone tablet camera sensor

At a company I work for we're developing a 3D Reconstruction app that can be downloaded to common Android devices. In order for the reconstructions to work the best, we need to input the devices' camera sensor size (specifically the CCD width). Through the app's Play Store administration page we've seen several users using something called "Google ATAP Project Tanto Tablet (Yellowstone)". Can anyone help us know what sensor size does that tablet has? This would improve the reconstructions made on that device.
Thanks in advance!
As far as I understand, Tango Yellowstone tablet uses a combined RGB and IR camera from OmniVision, OV4682 RGB IR. You can find more specifications here:
http://www.ovt.com/products/sensor.php?id=145

How to change dynamic video resolution during a call (in hangout WebRTC)

I'm find hangout's dynamic resolution in google hangout webrtc version.
How to change dynamic video resolution during a call.
[Situation]
- There were three users in room.
- When switching main speaker it is changed same video's resolution (.videoWidth .videoHeight)
I would like to know how it is implemented for many peer connection.
The change your resolution you can use the Hangout Toolstrip at top center of the Hangout interface to change the quality slider from Auto to a lower resolution, but there's a part of me that thinks you might be asking about aspect ratio instead... different devices (webcam, mobile device camera, etc) present in different aspect ratio (16:9 or 4:3). Some webcams allow you to change the aspect ratio, but it's a dependent on the software provided with the camera.
I hope that some part of this was helpful.

How Can I Clone a Camera Source DirectShow Filter?

I'm doing some stereoscopic work which means I have need to work with two instances of various filters (i.e. a camera source that receives an IP stream), and this is proving not to be trivial.
I even tried copying the IPCamfilter.ax to IPCamfilter.ax and manually making new CLSID entries in the reg, and the clone shows up, but won't work. Any ideas?
Should I edit the clone filters binary to change its CLSID and then register it? Or is there a simple way to use GraphEdit to do this?
Do you work with two cameras or with one camera and you wanna have two pictures.
In the first case, there are some filters which work just with one connected device (in case for e.g. firewire, cameras have to be connected to two different controllers).
In the latter case, you can use the Infinite Pin Tee Filter to get two streams of the one device. You can test that in GraphEdit as well.
There's nothing in COM that prevents you creating two instances of the same clsid, so you're solving the wrong problem by trying to change the clsid. There must be something in the filter internals that prevents multiple use in the same process.
If you can't get access to the source to fix it, you could have two capture graphs in separate processes and then use a bridge of some sort to combine the two outputs in a third graph (or in your application).
G
SplitCam is a freeware virtual video clone and video driver for connecting several applications to a single video capture source. Usually, if you have a camera connected to your PC, you cannot use it in more than one application at the same time, and there is no standard Windows options that makes it possible. Split Camera allows you to easily multiply your video source in any conferencing software like ICQ, Yahoo, MSN Messenger, or whatever.
Video Processing Filter is a powerful transform filter that allows rotate the video in 90, 180, and 270 degrees ,keep aspect ratio when rotated the video in 90 and 270 degrees , flip the video, convert a RGB video stream to Grayscale and invert color. Support rotate the video in 90, 180, and 270 degrees in any Directshow base application. Support keep aspect ratio when rotated the video in 90 and 270 degrees.