Список форматов устройств FFmpeg dshow

Я хотел бы спросить, есть ли возможность получить список форматов устройств dshow в Windows.

Например, я могу получить список форматов устройств в Linux через

v4l2-ctl -i /dev/video0 --list-formats

Index       : 0
Type        : Video Capture
Pixel Format: 'YUYV'
Name        : YUV 4:2:2 (YUYV)

Index       : 1
Type        : Video Capture
Pixel Format: 'H264' (compressed)
Name        : H.264

Index       : 2
Type        : Video Capture
Pixel Format: 'MJPG' (compressed)
Name        : MJPEG

В Windows я могу получить список устройств

ffmpeg -list_devices true -f dshow -i dummy

и варианты устройства

ffmpeg -f dshow -list_options true -i video="MY_DSHOW_DEVICE_NAME"

Но я не могу получить список форматов, как в Linux через v4l2.

Как я могу получить список поддерживаемых форматов для устройства dshow через FFmpeg в Windows?

0 ответов

Отложенный ответ на ваш вопрос.

Невозможно четко понять, что вы подразумеваете под "списком форматов", но если вы обратитесь к Pixel Format что появляется при использовании v4l2, то вы можете получить эти данные из вывода -list_options команда, которую вы упомянули.

Например, на моем ноутбуке при запуске я получаю следующий результат ffmpeg -f dshow -list_options true -i video ="Integrated Webcam":

(опуская первые строки для удобства просмотра)

[dshow @ 000001cc91eea4c0] DirectShow video device options (from video devices)
[dshow @ 000001cc91eea4c0]  Pin "Capture" (alternative pin name "0")
[dshow @ 000001cc91eea4c0]   vcodec=mjpeg  min s=1280x720 fps=30 max s=1280x720 fps=30
[dshow @ 000001cc91eea4c0]   vcodec=mjpeg  min s=1280x720 fps=30 max s=1280x720 fps=30
[dshow @ 000001cc91eea4c0]   vcodec=mjpeg  min s=960x540 fps=30 max s=960x540 fps=30
[dshow @ 000001cc91eea4c0]   vcodec=mjpeg  min s=960x540 fps=30 max s=960x540 fps=30
[dshow @ 000001cc91eea4c0]   vcodec=mjpeg  min s=848x480 fps=30 max s=848x480 fps=30
[dshow @ 000001cc91eea4c0]   vcodec=mjpeg  min s=848x480 fps=30 max s=848x480 fps=30
[dshow @ 000001cc91eea4c0]   vcodec=mjpeg  min s=1280x720 fps=30 max s=1280x720 fps=30
[dshow @ 000001cc91eea4c0]   vcodec=mjpeg  min s=1280x720 fps=30 max s=1280x720 fps=30
[dshow @ 000001cc91eea4c0]   pixel_format=yuyv422  min s=640x480 fps=30 max s=640x480 fps=30
[dshow @ 000001cc91eea4c0]   pixel_format=yuyv422  min s=640x480 fps=30 max s=640x480 fps=30
[dshow @ 000001cc91eea4c0]   pixel_format=yuyv422  min s=160x120 fps=30 max s=160x120 fps=30
[dshow @ 000001cc91eea4c0]   pixel_format=yuyv422  min s=160x120 fps=30 max s=160x120 fps=30
[dshow @ 000001cc91eea4c0]   pixel_format=yuyv422  min s=320x180 fps=30 max s=320x180 fps=30
[dshow @ 000001cc91eea4c0]   pixel_format=yuyv422  min s=320x180 fps=30 max s=320x180 fps=30
[dshow @ 000001cc91eea4c0]   pixel_format=yuyv422  min s=320x240 fps=30 max s=320x240 fps=30
[dshow @ 000001cc91eea4c0]   pixel_format=yuyv422  min s=320x240 fps=30 max s=320x240 fps=30
[dshow @ 000001cc91eea4c0]   pixel_format=yuyv422  min s=424x240 fps=30 max s=424x240 fps=30
[dshow @ 000001cc91eea4c0]   pixel_format=yuyv422  min s=424x240 fps=30 max s=424x240 fps=30
[dshow @ 000001cc91eea4c0]   pixel_format=yuyv422  min s=640x360 fps=30 max s=640x360 fps=30
[dshow @ 000001cc91eea4c0]   pixel_format=yuyv422  min s=640x360 fps=30 max s=640x360 fps=30
[dshow @ 000001cc91eea4c0]   pixel_format=yuyv422  min s=1280x720 fps=10 max s=1280x720 fps=10
[dshow @ 000001cc91eea4c0]   pixel_format=yuyv422  min s=1280x720 fps=10 max s=1280x720 fps=10

Как видите, данные, содержащиеся в vcodec а также pixel_format ключи - это те же значения, которые вы найдете в v4l2с Pixel Format, в этом случае mjpeg а также yuyv422соответственно.

Если вам нужен вывод с тем же форматированием текста, что и v4l2, то я понимаю, что это можно решить, например, с помощью регулярных выражений, и это не имеет прямого отношения к FFmpeg.

Другие вопросы по тегам