mirror of
https://github.com/tiyn/wiki.git
synced 2025-04-24 08:07:44 +02:00
android: added ip webcam and follow ups
This commit is contained in:
parent
e081dbb0a3
commit
48307410ce
38
wiki/android/ip_webcam.md
Normal file
38
wiki/android/ip_webcam.md
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# IP Webcam
|
||||||
|
|
||||||
|
[IP Webcam](https://play.google.com/store/apps/details?id=com.pas.webcam&hl=de&gl=US) is an App
|
||||||
|
developed and published by Pavel Khlebovich for [Android](/wiki/android.md) systems.
|
||||||
|
It enables a [smartphone](/wiki/smart_devices.md) to be used as [webcam](/wiki/webcams.md).
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
On [Android](/wiki/android.md) IP Webcam is available on the
|
||||||
|
[Google Play Store](/wiki/android.md#app-store) in a package called
|
||||||
|
[IP Webcam](https://play.google.com/store/apps/details?id=com.pas.webcam&hl=de&gl=US).
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
To initiate a connection between the [smartphone](/wiki/smart_devices.md) and the computer first
|
||||||
|
start the app on the smartphone.
|
||||||
|
Make sure to be connected to the same W-LAN as the computer or alternatively connect them with an
|
||||||
|
USB-cable.
|
||||||
|
After starting the application an IPv4 link be displayed.
|
||||||
|
This link can be pasted into a [browser](/wiki/web_browser.md).
|
||||||
|
There the video aswell as various settings will be available.
|
||||||
|
An example link will look like the following.
|
||||||
|
|
||||||
|
```txt
|
||||||
|
http://192.168.178.66:8080
|
||||||
|
```
|
||||||
|
|
||||||
|
Additionally it can be piped into [OBS](/wiki/obs.md) to edit it or into
|
||||||
|
[ffmpeg](/wiki/linux/ffmpeg.md) on [Linux](/wiki/linux.md) systems to create a virtual webcam
|
||||||
|
device as explained in the
|
||||||
|
[ffmpeg entry](/wiki/linux/ffmpeg.md#create-a-virtual-camera-using-an-ip-video-stream).
|
||||||
|
The link used for applications like this will be the previously displayed IPv4 link aswell as an
|
||||||
|
appended `/videofeed`.
|
||||||
|
An example link will look like the following.
|
||||||
|
|
||||||
|
```txt
|
||||||
|
http://192.168.178.66:8080/videofeed
|
||||||
|
```
|
@ -63,3 +63,20 @@ Note that the bitrate for videos is split amongst a bitrate for video and a
|
|||||||
bitrate for audio.
|
bitrate for audio.
|
||||||
The target bitrate has to be equal to or greater than the sum of both video
|
The target bitrate has to be equal to or greater than the sum of both video
|
||||||
bitrate and audio bitrate.
|
bitrate and audio bitrate.
|
||||||
|
|
||||||
|
### Create a Virtual Camera Using an IP Video Stream
|
||||||
|
|
||||||
|
The following section will create a virtual [webcam](/wiki/webcams.md) from an IP video stream like
|
||||||
|
the one provided by [IP Webcam](/wiki/android/ip_webcam.md) [Android](/wiki/android.md) app.
|
||||||
|
For this a free [V4L2](/wiki/linux/v4l2.md) video device will be needed.
|
||||||
|
To information on how to create it navigate to the V4L2 entry and its sections on
|
||||||
|
[permanent](/wiki/linux/v4l2.md#create-permanent-v4l2-devices) and
|
||||||
|
[temporary creation of V4L2 video devices](/wiki/linux/v4l2.md#create-temporary-v4l2-devices).
|
||||||
|
The following command will create a video device using the pixel format planar YUV 4:2:0.
|
||||||
|
In this example it is assumed that the IP link is `http://192.168.178.66:8080/videofeed` and the
|
||||||
|
V4L2 video device that is not used but exists is `/dev/video8`.
|
||||||
|
If any of those differs on a given system adjustments are needed.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ffmpeg -i http://192.168.178.66:8080/videofeed -f v4l2 -pix_fmt yuv420p /dev/video8
|
||||||
|
```
|
||||||
|
@ -13,11 +13,21 @@ The following section is based on a
|
|||||||
[v4l2loopback](https://github.com/umlaeute/v4l2loopback) is a utility to create
|
[v4l2loopback](https://github.com/umlaeute/v4l2loopback) is a utility to create
|
||||||
a virtual video device.
|
a virtual video device.
|
||||||
One use of it is in [OBS Virtual Camera](/wiki/obs.md#virtual-camera).
|
One use of it is in [OBS Virtual Camera](/wiki/obs.md#virtual-camera).
|
||||||
|
|
||||||
|
### Setup
|
||||||
|
|
||||||
To use v4l2loopback an according
|
To use v4l2loopback an according
|
||||||
package needs to be installed.
|
package needs to be installed.
|
||||||
Some distributions have a package named `v4l2loopback-dkms` in the package
|
Some distributions have a package named `v4l2loopback-dkms` in the package
|
||||||
manager, making the manual installation process unnecessary.
|
manager, making the manual installation process unnecessary.
|
||||||
Afterwards v4l2loopback can be manually started by running:
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
This section focusses on various use-cases for the v4l2loopback software.
|
||||||
|
|
||||||
|
### Create Temporary V4L2 Devices
|
||||||
|
|
||||||
|
v4l2loopback can be manually started by running:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
modprobe v4l2loopback card_label='V4L2 Loopback' video_nr=7 exclusive_caps=1
|
modprobe v4l2loopback card_label='V4L2 Loopback' video_nr=7 exclusive_caps=1
|
||||||
@ -28,6 +38,15 @@ modprobe v4l2loopback card_label='V4L2 Loopback' video_nr=7 exclusive_caps=1
|
|||||||
This can be changed according to the needs.
|
This can be changed according to the needs.
|
||||||
It is important that the device is not already in use by another application.
|
It is important that the device is not already in use by another application.
|
||||||
|
|
||||||
|
To create more than one device more labels or numbers can be appended.
|
||||||
|
An example command with 2 V4L2 video devices will look like the following command.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
modprobe v4l2loopback card_label='OBS Virtual Camera','IP Webcam' video_nr=7,8 exclusive_caps=1
|
||||||
|
```
|
||||||
|
|
||||||
|
### Create Permanent V4L2 Devices
|
||||||
|
|
||||||
For an automatic start at boot via [SystemD](./systemd.md) a service can be
|
For an automatic start at boot via [SystemD](./systemd.md) a service can be
|
||||||
created - as described in [the SystemD entry](./systemd.md#run-command-on-boot).
|
created - as described in [the SystemD entry](./systemd.md#run-command-on-boot).
|
||||||
For v4l2loopback create the file `/etc/systemd/system/v4l2loopback.service`
|
For v4l2loopback create the file `/etc/systemd/system/v4l2loopback.service`
|
||||||
@ -40,15 +59,15 @@ Description=V4L2 Loopback
|
|||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
RemainAfterExit=yes
|
RemainAfterExit=yes
|
||||||
ExecStart=/bin/modprobe v4l2loopback card_label='V4L2 Loopback' video_nr=7 exclusive_caps=1
|
ExecStart=/bin/modprobe v4l2loopback card_label='OBS Virtual Camera' video_nr=7 exclusive_caps=1
|
||||||
ExecStop=/bin/rmmod v4l2loopback
|
ExecStop=/bin/rmmod v4l2loopback
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=default.target
|
WantedBy=default.target
|
||||||
```
|
```
|
||||||
|
|
||||||
Note the line starting with `ExecStart=/bin/` is the same line described above
|
Note the line starting with `ExecStart=/bin/` is the same line described in the
|
||||||
to change the device path.
|
[above section](#create-temporary-v4l2-devices).
|
||||||
Make sure to change it if needed.
|
Make sure to change it if needed.
|
||||||
|
|
||||||
Afterwards enable the service to start at every boot process by running:
|
Afterwards enable the service to start at every boot process by running:
|
||||||
|
@ -27,3 +27,5 @@ A [smartphone](/wiki/smart_devices.md) and its camera aswell as flashlight can b
|
|||||||
replacement for a webcam.
|
replacement for a webcam.
|
||||||
For [Android](/wiki/android.md) smartphones this can be easily achieved by using
|
For [Android](/wiki/android.md) smartphones this can be easily achieved by using
|
||||||
[DroidCam](/wiki/android/droidcam.md).
|
[DroidCam](/wiki/android/droidcam.md).
|
||||||
|
An alternative to DroidCam with a with decidedly better resolution is
|
||||||
|
[IP Webcam](/wiki/android/ip_webcam.md).
|
||||||
|
Loading…
x
Reference in New Issue
Block a user