|
|
|
@ -408,116 +408,6 @@ ffmpeg -channels 16 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' |
|
|
|
|
|
|
|
|
|
@end itemize |
|
|
|
|
|
|
|
|
|
@section kmsgrab |
|
|
|
|
|
|
|
|
|
KMS video input device. |
|
|
|
|
|
|
|
|
|
Captures the KMS scanout framebuffer associated with a specified CRTC or plane as a |
|
|
|
|
DRM object that can be passed to other hardware functions. |
|
|
|
|
|
|
|
|
|
Requires either DRM master or CAP_SYS_ADMIN to run. |
|
|
|
|
|
|
|
|
|
If you don't understand what all of that means, you probably don't want this. Look at |
|
|
|
|
@option{x11grab} instead. |
|
|
|
|
|
|
|
|
|
@subsection Options |
|
|
|
|
|
|
|
|
|
@table @option |
|
|
|
|
|
|
|
|
|
@item device |
|
|
|
|
DRM device to capture on. Defaults to @option{/dev/dri/card0}. |
|
|
|
|
|
|
|
|
|
@item format |
|
|
|
|
Pixel format of the framebuffer. Defaults to @option{bgr0}. |
|
|
|
|
|
|
|
|
|
@item format_modifier |
|
|
|
|
Format modifier to signal on output frames. This is necessary to import correctly into |
|
|
|
|
some APIs, but can't be autodetected. See the libdrm documentation for possible values. |
|
|
|
|
|
|
|
|
|
@item crtc_id |
|
|
|
|
KMS CRTC ID to define the capture source. The first active plane on the given CRTC |
|
|
|
|
will be used. |
|
|
|
|
|
|
|
|
|
@item plane_id |
|
|
|
|
KMS plane ID to define the capture source. Defaults to the first active plane found if |
|
|
|
|
neither @option{crtc_id} nor @option{plane_id} are specified. |
|
|
|
|
|
|
|
|
|
@item framerate |
|
|
|
|
Framerate to capture at. This is not synchronised to any page flipping or framebuffer |
|
|
|
|
changes - it just defines the interval at which the framebuffer is sampled. Sampling |
|
|
|
|
faster than the framebuffer update rate will generate independent frames with the same |
|
|
|
|
content. Defaults to @code{30}. |
|
|
|
|
|
|
|
|
|
@end table |
|
|
|
|
|
|
|
|
|
@subsection Examples |
|
|
|
|
|
|
|
|
|
@itemize |
|
|
|
|
|
|
|
|
|
@item |
|
|
|
|
Capture from the first active plane, download the result to normal frames and encode. |
|
|
|
|
This will only work if the framebuffer is both linear and mappable - if not, the result |
|
|
|
|
may be scrambled or fail to download. |
|
|
|
|
@example |
|
|
|
|
ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4 |
|
|
|
|
@end example |
|
|
|
|
|
|
|
|
|
@item |
|
|
|
|
Capture from CRTC ID 42 at 60fps, map the result to VAAPI, convert to NV12 and encode as H.264. |
|
|
|
|
@example |
|
|
|
|
ffmpeg -crtc_id 42 -framerate 60 -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12' -c:v h264_vaapi output.mp4 |
|
|
|
|
@end example |
|
|
|
|
|
|
|
|
|
@end itemize |
|
|
|
|
|
|
|
|
|
@section libndi_newtek |
|
|
|
|
|
|
|
|
|
The libndi_newtek input device provides capture capabilities for using NDI (Network |
|
|
|
|
Device Interface, standard created by NewTek). |
|
|
|
|
|
|
|
|
|
Input filename is a NDI source name that could be found by sending -find_sources 1 |
|
|
|
|
to command line - it has no specific syntax but human-readable formatted. |
|
|
|
|
|
|
|
|
|
To enable this input device, you need the NDI SDK and you |
|
|
|
|
need to configure with the appropriate @code{--extra-cflags} |
|
|
|
|
and @code{--extra-ldflags}. |
|
|
|
|
|
|
|
|
|
@subsection Options |
|
|
|
|
|
|
|
|
|
@table @option |
|
|
|
|
|
|
|
|
|
@item find_sources |
|
|
|
|
If set to @option{true}, print a list of found/available NDI sources and exit. |
|
|
|
|
Defaults to @option{false}. |
|
|
|
|
|
|
|
|
|
@item wait_sources |
|
|
|
|
Override time to wait until the number of online sources have changed. |
|
|
|
|
Defaults to @option{0.5}. |
|
|
|
|
|
|
|
|
|
@item allow_video_fields |
|
|
|
|
When this flag is @option{false}, all video that you receive will be progressive. |
|
|
|
|
Defaults to @option{true}. |
|
|
|
|
|
|
|
|
|
@end table |
|
|
|
|
|
|
|
|
|
@subsection Examples |
|
|
|
|
|
|
|
|
|
@itemize |
|
|
|
|
|
|
|
|
|
@item |
|
|
|
|
List input devices: |
|
|
|
|
@example |
|
|
|
|
ffmpeg -f libndi_newtek -find_sources 1 -i dummy |
|
|
|
|
@end example |
|
|
|
|
|
|
|
|
|
@item |
|
|
|
|
Restream to NDI: |
|
|
|
|
@example |
|
|
|
|
ffmpeg -f libndi_newtek -i "DEV-5.INTERNAL.M1STEREO.TV (NDI_SOURCE_NAME_1)" -f libndi_newtek -y NDI_SOURCE_NAME_2 |
|
|
|
|
@end example |
|
|
|
|
|
|
|
|
|
@end itemize |
|
|
|
|
|
|
|
|
|
@section dshow |
|
|
|
|
|
|
|
|
|
Windows DirectShow input device. |
|
|
|
@ -945,6 +835,68 @@ Set the number of channels. Default is 2. |
|
|
|
|
|
|
|
|
|
@end table |
|
|
|
|
|
|
|
|
|
@section kmsgrab |
|
|
|
|
|
|
|
|
|
KMS video input device. |
|
|
|
|
|
|
|
|
|
Captures the KMS scanout framebuffer associated with a specified CRTC or plane as a |
|
|
|
|
DRM object that can be passed to other hardware functions. |
|
|
|
|
|
|
|
|
|
Requires either DRM master or CAP_SYS_ADMIN to run. |
|
|
|
|
|
|
|
|
|
If you don't understand what all of that means, you probably don't want this. Look at |
|
|
|
|
@option{x11grab} instead. |
|
|
|
|
|
|
|
|
|
@subsection Options |
|
|
|
|
|
|
|
|
|
@table @option |
|
|
|
|
|
|
|
|
|
@item device |
|
|
|
|
DRM device to capture on. Defaults to @option{/dev/dri/card0}. |
|
|
|
|
|
|
|
|
|
@item format |
|
|
|
|
Pixel format of the framebuffer. Defaults to @option{bgr0}. |
|
|
|
|
|
|
|
|
|
@item format_modifier |
|
|
|
|
Format modifier to signal on output frames. This is necessary to import correctly into |
|
|
|
|
some APIs, but can't be autodetected. See the libdrm documentation for possible values. |
|
|
|
|
|
|
|
|
|
@item crtc_id |
|
|
|
|
KMS CRTC ID to define the capture source. The first active plane on the given CRTC |
|
|
|
|
will be used. |
|
|
|
|
|
|
|
|
|
@item plane_id |
|
|
|
|
KMS plane ID to define the capture source. Defaults to the first active plane found if |
|
|
|
|
neither @option{crtc_id} nor @option{plane_id} are specified. |
|
|
|
|
|
|
|
|
|
@item framerate |
|
|
|
|
Framerate to capture at. This is not synchronised to any page flipping or framebuffer |
|
|
|
|
changes - it just defines the interval at which the framebuffer is sampled. Sampling |
|
|
|
|
faster than the framebuffer update rate will generate independent frames with the same |
|
|
|
|
content. Defaults to @code{30}. |
|
|
|
|
|
|
|
|
|
@end table |
|
|
|
|
|
|
|
|
|
@subsection Examples |
|
|
|
|
|
|
|
|
|
@itemize |
|
|
|
|
|
|
|
|
|
@item |
|
|
|
|
Capture from the first active plane, download the result to normal frames and encode. |
|
|
|
|
This will only work if the framebuffer is both linear and mappable - if not, the result |
|
|
|
|
may be scrambled or fail to download. |
|
|
|
|
@example |
|
|
|
|
ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4 |
|
|
|
|
@end example |
|
|
|
|
|
|
|
|
|
@item |
|
|
|
|
Capture from CRTC ID 42 at 60fps, map the result to VAAPI, convert to NV12 and encode as H.264. |
|
|
|
|
@example |
|
|
|
|
ffmpeg -crtc_id 42 -framerate 60 -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12' -c:v h264_vaapi output.mp4 |
|
|
|
|
@end example |
|
|
|
|
|
|
|
|
|
@end itemize |
|
|
|
|
|
|
|
|
|
@section lavfi |
|
|
|
|
|
|
|
|
|
Libavfilter input virtual device. |
|
|
|
@ -1083,6 +1035,54 @@ IIDC1394 input device, based on libdc1394 and libraw1394. |
|
|
|
|
|
|
|
|
|
Requires the configure option @code{--enable-libdc1394}. |
|
|
|
|
|
|
|
|
|
@section libndi_newtek |
|
|
|
|
|
|
|
|
|
The libndi_newtek input device provides capture capabilities for using NDI (Network |
|
|
|
|
Device Interface, standard created by NewTek). |
|
|
|
|
|
|
|
|
|
Input filename is a NDI source name that could be found by sending -find_sources 1 |
|
|
|
|
to command line - it has no specific syntax but human-readable formatted. |
|
|
|
|
|
|
|
|
|
To enable this input device, you need the NDI SDK and you |
|
|
|
|
need to configure with the appropriate @code{--extra-cflags} |
|
|
|
|
and @code{--extra-ldflags}. |
|
|
|
|
|
|
|
|
|
@subsection Options |
|
|
|
|
|
|
|
|
|
@table @option |
|
|
|
|
|
|
|
|
|
@item find_sources |
|
|
|
|
If set to @option{true}, print a list of found/available NDI sources and exit. |
|
|
|
|
Defaults to @option{false}. |
|
|
|
|
|
|
|
|
|
@item wait_sources |
|
|
|
|
Override time to wait until the number of online sources have changed. |
|
|
|
|
Defaults to @option{0.5}. |
|
|
|
|
|
|
|
|
|
@item allow_video_fields |
|
|
|
|
When this flag is @option{false}, all video that you receive will be progressive. |
|
|
|
|
Defaults to @option{true}. |
|
|
|
|
|
|
|
|
|
@end table |
|
|
|
|
|
|
|
|
|
@subsection Examples |
|
|
|
|
|
|
|
|
|
@itemize |
|
|
|
|
|
|
|
|
|
@item |
|
|
|
|
List input devices: |
|
|
|
|
@example |
|
|
|
|
ffmpeg -f libndi_newtek -find_sources 1 -i dummy |
|
|
|
|
@end example |
|
|
|
|
|
|
|
|
|
@item |
|
|
|
|
Restream to NDI: |
|
|
|
|
@example |
|
|
|
|
ffmpeg -f libndi_newtek -i "DEV-5.INTERNAL.M1STEREO.TV (NDI_SOURCE_NAME_1)" -f libndi_newtek -y NDI_SOURCE_NAME_2 |
|
|
|
|
@end example |
|
|
|
|
|
|
|
|
|
@end itemize |
|
|
|
|
|
|
|
|
|
@section openal |
|
|
|
|
|
|
|
|
|
The OpenAL input device provides audio capture on all systems with a |
|
|
|
@ -1201,7 +1201,6 @@ Set the number of channels. Default is 2. |
|
|
|
|
|
|
|
|
|
@end table |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@section pulse |
|
|
|
|
|
|
|
|
|
PulseAudio input device. |
|
|
|
|