[РЕШЕНО] mpv - запись видео и звука с вебкамеры

Здравствуйте!
В mpv при указании протокола для доступа к libavdevice (av://type:options) доступен один набор ввода, например:

$ mpv av://v4l2:/dev/video0 --profile=low-latency --untimed -o /tmp/capture.avi
[ffmpeg/demuxer] video4linux2,v4l2: Time per frame unknown
 (+) Video --vid=1 (mjpeg 640x480)
[autoconvert] Converting yuvj422p -> yuv420p
[ffmpeg] swscaler: deprecated pixel format used, make sure you did set range correctly
VO: [lavc] 640x480 yuv420p
[vo/lavc] Opening encoder: MPEG-4 part 2 [mpeg4]
[encode] Opening output file: /tmp/capture.avi
[encode] Opening muxer: AVI (Audio Video Interleaved) [avi]
V: 01:54:41 / 01:54:41 (100%) {1276.9min 14.9fps 0.0MB}
[ffmpeg/demuxer] video4linux2,v4l2: Some buffers are still owned by the caller on close.
[ffmpeg] ioctl(VIDIOC_QBUF): Bad file descriptor

[encode] video: encoded 107568 bytes
[encode] audio: encoded 0 bytes
[encode] muxing overhead 115526 bytes
Exiting... (Quit)

$ mpv av://pulse:alsa_input.usb-V_Micro._Corp._PC_Camera-01.mono-fallback --profile=low-latency --untimed -o /tmp/capture.avi
 (+) Audio --aid=1 (pcm_s16le 2ch 48000Hz)
[ao/lavc] Opening encoder: libmp3lame MP3 (MPEG audio layer 3) [libmp3lame]
[encode] Opening output file: /tmp/capture.avi
[encode] Opening muxer: AVI (Audio Video Interleaved) [avi]
AO: [lavc] 48000Hz stereo 2ch s16p
A: 447282:10:17 / 447282:10:17 (100%) {1222.7min 1.15x 0.0MB}

[encode] video: encoded 0 bytes
[encode] audio: encoded 137472 bytes
[encode] muxing overhead 14268 bytes
Exiting... (Quit)
Вместе видео и звук указать не получается. При указании av:// для видео и для звука отдельно, используется первый.
Есть еще:

lavf://...

    Access any FFmpeg/Libav libavformat protocol. Basically, this passed the string after the // directly to libavformat.
Но не документирован, если, конечно он подойдет для указания и видео и аудио устройств вместе.
А вам ffmpeg не подходит для записи?
rintmax
Вместе видео и звук указать не получается.
Если Вам требуется часто записывать с вебкамеры, то не разумнее-бы было просто приобрести нормальную вебкамеру с микрофоном или даже с возможностью подключения внешнего микрофона? Сейчас их на али полно, и за разумную цену. Я когда-то также мучался с рассинхроном. Сейчас у меня вебкамера следит за моим авто на стоянке с 9-го этажа и никаких проблем не наблюдается. Цена вопроса была около 3.5 к, даже лень было ланом соединять, вполне обошелся вайфаем. А так, вам коллега выше правильно подсказал насчет ffmpeg
Ну, можно еще смартфон использовать
vs220
ffmpeg использую, и vlc тоже. Инструменты для записи хотелось бы в несколько избыточном количестве - на случай бага в той или другой программе.
А до mpv сейчас только добрался - понравилось качество картинки и почти полное отсутствие задержки видео с --profile=low-latency в реалтайме, а вот с записью с опциями нужно разбираться - без них пишет ужасно. И опять же видео+аудио непонятно как захватить.
Holden
Запись нужна периодически, в бытовых целях, использую как памятку для запоминания последовательности действий - с тех пор как записал распаковку вентилятора, каждую осень благодарил себя собирая обратно в коробку, потом заучил (умудряются же производители в минимальном пространстве уместить много чего). Сетевая камера для меня неактуальна, хотя интересна по возможностям. А вот usb с разрешением побольше - присматриваю, но mpv=видео+звук=? проблема остается.
rintmax
на случай бага
mpv все равно ffmpeg использует.

rintmax
в бытовых целях
guvcview
vs220
guvcview
Есть
mpv все равно ffmpeg использует
И я об этом же. Получается нет такой опции (захват видео+аудио)?
Совсем нет? )))
rintmax
guvcview
Есть
Ну так и пишите им

rintmax
захват видео+аудио
ffmpeg -f v4l2 -video_size 1280x720 -i /dev/video0 -f alsa -i "default:CARD=Webcam" -c:v libx264 -preset ultrafast -c:a aac /tmp/web.mp4
vs220
И это есть:
ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -f pulse -i default -c:v libx264 -r 15 -preset fast -ac 1 -ar 8000 -c:a aac /tmp/web.mp4
Насчет написать разработчикам - попробую. Похоже, что удалили вместе с протоколом tv://. Странно, что вопрос не озвучен в сети - никто mpv не пользуется для захвата?
rintmax
Насчет написать разработчикам
Я имел ввиду писать видео с помощью guvcview
Ну если вам обязательно извращаться с mpv то пробуйте инструкцию от

rintmax
разработчик
ов

https://github.com/mpv-player/mpv/wiki/Video4Linux2-Input
vs220
https://github.com/mpv-player/mpv/wiki/Video4Linux2-Input
А вот за это - спасибо! Не находил.
$ mpv av://v4l2:/dev/video0 --profile=low-latency --audio-file=av://pulse:alsa_input.usb-V_Micro._Corp._PC_Camera-01.mono-fallback --untimed -o /tmp/capture.avi
[ffmpeg/demuxer] video4linux2,v4l2: Time per frame unknown
 (+) Video --vid=1 (mjpeg 640x480)
 (+) Audio --aid=1 'pulse:alsa_input.usb-V_Micro._Corp._PC_Camera-01.mono-fallback' (pcm_s16le 2ch 48000Hz) (external)
[autoconvert] Converting yuvj422p -> yuv420p
[ffmpeg] swscaler: deprecated pixel format used, make sure you did set range correctly
VO: [lavc] 640x480 yuv420p
[vo/lavc] Opening encoder: MPEG-4 part 2 [mpeg4]
[ao/lavc] Opening encoder: libmp3lame MP3 (MPEG audio layer 3) [libmp3lame]
[encode] Opening output file: /tmp/capture.avi
[encode] Opening muxer: AVI (Audio Video Interleaved) [avi]
AO: [lavc] 48000Hz stereo 2ch s16p
AV: 02:29:52 / 02:29:52 (100%) A-V:  0.000 {1318.2min 17.3fps 0.0MB}
[ffmpeg/demuxer] video4linux2,v4l2: Some buffers are still owned by the caller on close.
[ffmpeg] ioctl(VIDIOC_QBUF): Bad file descriptor

[encode] video: encoded 123582 bytes
[encode] audio: encoded 0 bytes
[encode] muxing overhead 140994 bytes
Exiting... (Quit)
Звуковая дорожка появилась, но звук не записан - тишина.
$ mpv /tmp/capture.avi
[ffmpeg/demuxer] avi: Could not find codec parameters for stream 1 (Audio: mp3 (mp3float) (U[0][0][0] / 0x0055), 48000 Hz, 2 channels, fltp): unspecified frame size
[ffmpeg/demuxer] Consider increasing the value for the 'analyzeduration' and 'probesize' options
 (+) Video --vid=1 (mpeg4 640x480 600.000fps)
 (+) Audio --aid=1 (mp3 2ch 48000Hz)
VO: [gpu] 640x480 yuv420p
AV: 00:00:09 / 00:00:09 (99%) A-V:  0.000

Exiting... (End of file)
 
Зарегистрироваться или войдите чтобы оставить сообщение.