eeenaw
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Цитата: eeenaw File -> Open Device мёртво вообще или с чем-то это всё же работает? | V0lt "Открыть устройство" работает для веб-камер. | Основную проблему, абсолютно блокировавшую использование, удалось устранить самостоятельно. Кое какие чудные странности пока остались. AverMedia AVerTV CaptureHD PCIe Hybrid DVBT HDMI (H727) Цитата: ====>ffmpeg -hide_banner -list_devices true -f dshow -i "" [dshow @ 000000c431ff0980] "AVerMedia BDA Analog Capture" (audio, video) [dshow @ 000000c431ff0980] Alternative name "@device_pnp_\\?\pci#ven_1a0a&dev_6200&subsys_62011461&rev_01#4&298f2d5&0&00e0#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{ca465100-deb0-4d59-818f-8c477184adf6}" [dshow @ 000000c431ff0980] "AVerMedia BDA Analog Capture Secondary" (audio, video) [dshow @ 000000c431ff0980] Alternative name "@device_pnp_\\?\pci#ven_1a0a&dev_6200&subsys_62011461&rev_01#4&298f2d5&0&00e0#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{ede957b0-eaa5-4bf4-acf3-6e10cb4836c3}" | (более подробный кусок из dxdiag / ffmpeg) Итак, заработало НЕ-веб-камерное capture device, в моем случае это secondary подустройство платы захвата, на котором компонентный вход и HDMI_IN. (от 1-го канала временно отказываемся). Теперь в панели Capture быстро переключаются режимы, размеры кадра. Запуск и инициализации практически моментальны. С оговорками как-то работают все рендереры. Теперь удалось запуститься даже с MPC-VR, но только через добавку промежуточного внешнего фильтра: https://github.com/defl/directshow_metadata_injector_filter Без этой вещи если был выбран, то крашится, как и ранее (stacktrace). При необходимости добавлю minidump. Цитата: X:\>commandcam /details CommandCam 2.8 Copyright (c) 2016 Ted Burke, Matjaz Rihtar (Nov 17, 2016) https://batchloaf.wordpress.com, https://github.com/mrihtar/CommandCam Available capture devices: 1. AVerMedia BDA Analog Capture Pin: Analog Video In Pin: Analog Audioinput Pin: Capture, 6 caps Cap 0: FORMAT_VideoInfo, YUY2, 16 bits, 720x576 @ 25 fps Cap 1: FORMAT_VideoInfo, YUY2, 16 bits, 720x480 @ 29 fps Cap 2: FORMAT_VideoInfo, YVYU, 16 bits, 720x576 @ 25 fps Cap 3: FORMAT_VideoInfo, YVYU, 16 bits, 720x480 @ 29 fps Cap 4: FORMAT_VideoInfo, UYVY, 16 bits, 720x576 @ 25 fps Cap 5: FORMAT_VideoInfo, UYVY, 16 bits, 720x480 @ 29 fps Pin: VBI, 2 caps Cap 0: FORMAT_{F72A76E0-EB0A-11D0-ACE4-0000C0CC16BA} Cap 1: FORMAT_{F72A76E0-EB0A-11D0-ACE4-0000C0CC16BA} Pin: Audio, 1 caps Cap 0: FORMAT_{05589F81-C356-11CE-BF01-00AA0055595A} 2. AVerMedia BDA Analog Capture Secondary Pin: Analog Video In Pin: Analog Audioinput Pin: Capture, 21 caps Cap 0: FORMAT_VideoInfo, YUY2, 16 bits, 720x480 @ 29 fps Cap 1: FORMAT_VideoInfo, YUY2, 16 bits, 720x576 @ 25 fps Cap 2: FORMAT_VideoInfo, YVYU, 16 bits, 720x480 @ 29 fps Cap 3: FORMAT_VideoInfo, YVYU, 16 bits, 720x576 @ 25 fps Cap 4: FORMAT_VideoInfo, UYVY, 16 bits, 720x480 @ 29 fps Cap 5: FORMAT_VideoInfo, UYVY, 16 bits, 720x576 @ 25 fps Cap 6: FORMAT_VideoInfo, YUY2, 16 bits, 640x480 @ 29 fps Cap 7: FORMAT_VideoInfo, YVYU, 16 bits, 640x480 @ 29 fps Cap 8: FORMAT_VideoInfo, UYVY, 16 bits, 640x480 @ 29 fps Cap 9: FORMAT_VideoInfo, YUY2, 16 bits, 1920x1080 @ 29 fps Cap 10: FORMAT_VideoInfo, YUY2, 16 bits, 1920x1080 @ 25 fps Cap 11: FORMAT_VideoInfo, YVYU, 16 bits, 1920x1080 @ 29 fps Cap 12: FORMAT_VideoInfo, YVYU, 16 bits, 1920x1080 @ 25 fps Cap 13: FORMAT_VideoInfo, UYVY, 16 bits, 1920x1080 @ 29 fps Cap 14: FORMAT_VideoInfo, UYVY, 16 bits, 1920x1080 @ 25 fps Cap 15: FORMAT_VideoInfo, YUY2, 16 bits, 1280x720 @ 59 fps Cap 16: FORMAT_VideoInfo, YUY2, 16 bits, 1280x720 @ 50 fps Cap 17: FORMAT_VideoInfo, YVYU, 16 bits, 1280x720 @ 59 fps Cap 18: FORMAT_VideoInfo, YVYU, 16 bits, 1280x720 @ 50 fps Cap 19: FORMAT_VideoInfo, UYVY, 16 bits, 1280x720 @ 59 fps Cap 20: FORMAT_VideoInfo, UYVY, 16 bits, 1280x720 @ 50 fps Pin: VBI, 6 caps Cap 0: FORMAT_{F72A76E0-EB0A-11D0-ACE4-0000C0CC16BA} Cap 1: FORMAT_{F72A76E0-EB0A-11D0-ACE4-0000C0CC16BA} Cap 2: FORMAT_{F72A76E0-EB0A-11D0-ACE4-0000C0CC16BA} Cap 3: FORMAT_{F72A76E0-EB0A-11D0-ACE4-0000C0CC16BA} Cap 4: FORMAT_{F72A76E0-EB0A-11D0-ACE4-0000C0CC16BA} Cap 5: FORMAT_{F72A76E0-EB0A-11D0-ACE4-0000C0CC16BA} Pin: Audio, 1 caps Cap 0: FORMAT_{05589F81-C356-11CE-BF01-00AA0055595A} | Захват стартует изначально в 720х480 и картинка чудовищно искажена. Такова она для размеров кадра и 720x480 и 720x576. Без инъектора с обоими всё валится, а кроме как через интерфейс в настройки же не попасть. Но попав в них по-иному, если перевыбрать размер кадра в панельке Capture (Ctrl+8) из списка доступного на любое другое, скажем, на 1280х720, то изображение почти всегда пропадёт, в списке фильтров по правой кнопке будет отсутствовать рендерер, ничего ни фолбечится на VMR (если такая функциональность вообще есть). Если подождать несколько секунд (±1 км) и понажимать [Set] или - что практически абсолютно надёжно - переоткрыть устройство, рендерер буквально отпускает и можно получать нормальное видео бесконечно. Насколько я понимаю, перестроение графа происходит нестабильно. Может сработать как бы нормально много раз подряд, а может срабатывать только при переоткрытии устройства. В debug логе в связи с этим преизрядное количество повторяющихся строк вида Цитата: 00000369 54.33717728 [3640] MpcVideoRenderer64.ax(tid 162c) 54337 : CMpcVideoRenderer::~CMpcVideoRenderer() 00000370 54.34050751 [3640] MpcVideoRenderer64.ax(tid 162c) 54340 : CMpcVideoRenderer::CMpcVideoRenderer() 00000371 54.34055328 [3640] MpcVideoRenderer64.ax(tid 162c) 54341 : Previous copy of CMpcVideoRenderer found! Initialization aborted. | (см. более полный лог) Есть также вопросы к сохранению установок Capture, они обычно сбрасываются, но в каком-то случае могли сохраняться. Если всё почти в порядке, нормально отображается видео, содержимое mpc-be64.ini в части видео-захвата выглядит так Цитата: [Capture] <...> VidDispName=@device:pnp:\\?\pci#ven_1a0a&dev_6200&subsys_62011461&rev_01#4&298f2d5&0&00e0#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{ede957b0-eaa5-4bf4-acf3-6e10cb4836c3} VidFormat=AAAAAAAAAAAABQAA0AIAAAAAAAAAAAAAAAUAANACAAAAALw0AAAAALCLAgAAAAAAKAAAAAAFAADQAgAAAQAQAFlVWTIAIBwAAAAAAAAAAAAAAAAAAAAAAA== VidMediaType=dmlkcwAAEACAAACqADibcVlVWTIAABAAgAAAqgA4m3EBAAAAAAAAAAAgHACAn1gFVsPOEb8BAKoAVVlaAAAAAAAAAAAAAAAAWAAAAAAAAABg9eEYEwAAAA== <...> | VidFormat и VidMediaType не очень человекочитаемы, но видно, что при неудачной инициализации меняются. Требует уточнения. (видимо, это смесь двоичных и текстовых данных, закодированная в base64 для помещения ее в конфиг; декодер base64 позволяет увидеть пару-тройку фрагментов, среди них абсолютно релевантный "YUY2") Если восстанавливать их вручную или зафиксировать вовремя поставив на конфиг атрибут "только чтение", превью стартует успешно. С атрибутом - каждый раз и уже без манипуляций. Последний вариант нежелателен из-за блокировки изменений в конфиг, но приемлем как временное решение т.к. история, плейлисты и т.п. хранятся в отдельных файлах. Пин source и injector, пин рендерера <- медиатайп изменён, добавлен изначально отсутствовавший VIDEOINFOHEADER2 injector filter .ini Дополнительная польза от инъектора в возможности указать не только есть ли интерлейс, но и aspect ratio. Т.к. с помощью настройки по медиатайп/сабтайп можно разрешить автозагрузку этого внешнего фильтра только для захватного видео, то получается очень удобно: не надо постоянно тыкаться в настройки кадра и перевыставлять там AR с дефолтного на нужный фиксированный и обратно. Поэтому решено было оставить инъектор как есть и для других размеров кадра, с которыми не происходит крэш. Как примечание, запись в файл всей этой конструкцией работает, uncompressed. Без preview, что характерно. Еще остались кое какие, видимо, специфические странности в работе через MPC-VR, проявляющиеся только при захвате. Прежде всего, касается нелинейного накопления задержки, видимо, из-за увеличения размеров буфера, очередей. Проявляется, собственно, увеличением задержки, вплоть до неприемлемой в районе > 1/2 секунды, торможением отображения статистики (Ctrl+J) и реакции на нажатие этой комбо и, если иногда повезет поймать, снижением fps по стате до 33 с вибрациями около этой цифрой и "jerkiness" - субъективно получается кадров 12 в секунду. Предположительно, связано с конкуренцией за ресурсы и провоцируется, например, браузером когда он начинает делать композитинг с применением GPU. Возможно еще какими-то фоновыми процессами. Но интереснее всего это можно триггернуть если быстро повращать колесо мыши туда-сюда в области кадра (громкость), тогда сразу станет заметно и торможение статы и подскочат тайминги sync offset до +16..17 мс с мелкой вибрацией около этих значений и present до 15 мс; само видео при таком вращении колеса становится слегка прерывистым и вязким. При этом в рамках отслеживаемой и отображаемой рендерером статистики пропусков кадров формально не фиксируется, загрузка CPU низкая, обычная для MPC. Похоже, что этого проще достичь и более вычурно оно выглядит при swap effect = flip. Быстрое двойное нажатие на пробел — pause-play приводит всё в норму с первого или изредка со второго-третьего раза, ну а потом всё по новой. Возможно, тут следует посмотреть PresentMon'ом или чем-то ещё. Интересно было бы узнать, чем же таким важным становятся заняты MPC и VR, что растут очереди и не хватает процессорного времени на отрисовку OSD. При этом всём самая минимальная наблюдаемая задержка получается при работе через MPC-VR, он обходит VMR. Напоминаю, это существенно, когда нужен реальный фидбек от собственных действий, совершаемых на подключенную камеру. Несколько второстепенных моментов: -> Добавьте пожалуйста когда-нибудь потом CLI свитч для открытия устройства захвата (в идеале с передачей хоть каких-то параметров чтобы избегнуть описанной выше ситуации). -> Возможно, при открытии устройства есть резон автоматом скрыть seekbar? Ибо зачем он в лайве кроме как дважды написать "Live", в одном углу напоминая что это Live, а во втором вместо таймера. -> OSD в режиме захвата некорректно масштабируется, если открыться в окне, то его распирает, в фулскрине - скукоживает. Шрифт отображается гаденько. Постараюсь добавить каких-то деталей. Чтобы не потеряться, ссылка сюда же | Всего записей: 46 | Зарегистр. 20-02-2013 | Отправлено: 07:58 27-12-2023 | Исправлено: eeenaw, 17:17 17-01-2024 |
|