Возможно ли использовать телевизор на Android как карту захвата?
Есть телевизор на андройд, какой-то Dexp с 4ых ядерным ЦП.
Собственно, можно ли установить какую-то программу которая будет захватывать изображение с HDMI и AV входов?
P.S. По факту, это больше планшет. Экраном управляет сам ЦП, значит сигнал через него таки проходит, да и отображение происходит через оболочку.
Ну а что мешает самому попробовать? Программ screen video recorder в Google play навалом, если для Android TV нет, то поищи на Fdroid нужный АРК, поставь и проверь.
AlexVWill, Я имел ввиду немного другое, ваш способ тоже вполне рабочий..
Захватвать всмысле напрямую, а не через отображение сначала на экране а потом уже захвата
Степан, а, понял... Это врятли. Внутри виртуальной машины Java, на которой работают приложения, они не умеют обращаться напрямую к железу, только через драйвера и API самого андроида. Так что это врятли, да и без рут скорее всего нельзя, если конечно в API это не реализовано, а я такого что то не вижу если погуглить.
Кстати, у меня Sony Bravia на Android TV умеет записывать на внешний жёсткий диск, но во 1х пишет в каком то своем формате, чтобы проигрывать внутри ТВ только, а во 2-х это реализовано не приложением, а какой то системной функцией с привязкой к кнопке на пульте. Это, как я понял, сделано в целях защиты копирайт.
Очень накладно будет.
Все железо телевизора оптимизировано так, чтобы декодировать видео либо с входов, либо с сетевого потока через аппаратные декодеры форматов видео. Они заточены на определенные форматы, и общие ресурсы CPU и GPU не тратят вовсе. А если вы хотите сделать обратную операцию, то в телевизоре, кроме процессоров CPU и GPU это делать некому. А эти устройства условно можно считать общего назначения. Чтобы на них кодировать видео, нужны не дешевые бюджетные варианты, которые ставят в любую бытовую технику, к которым относится телевизор, а те, которые ставят в флагманские смартфоны. Они будут заметно нагружены во время захвата или другого вида обработки видео, так как операцию кодирования вы не обойдете, нужно получать на выходе компактный файл, а не сырой видеопоток.
Экраном управляет сам ЦП
Не совсем, он может управлять только фреймом, в какой области экрана выводить изображение видеопотока (и в каком слое графического интерфейса по z-буферу). Декодер потока видео может помещать готовый кадр напрямую в буфер вывода видео. ЦП может дать корректировки яркости/контрастности через API декодера. Процессор попиксельно картинку не будет обрабатывать, это не его задача.
Так что предположение неверное.
Собственно, можно ли установить какую-то программу которая будет захватывать изображение с HDMI и AV входов?
Конечно. Программа записи экрана.
А "со входов" приходит цифровой/аналоговый поток, а не "изображение". В "изображение" этот поток преобразуется уже при помощи ЦП устройства (ТВ в данном случае). Строго говоря и "изображения" никакого нет - есть последовательность зажигания светодиодов.
Захватили HDMI на телевизоре, "тот самый поток", дальше что ? Вы его получаете со скоростью 1,58 Гбит/с (это обычный HD 30fps, на 60fps будет 3,2 Гбит/с, я не говорю о 2К-4К где от 3Гбит/с до 55 Гбит/с)
т.е каждую секунду Вам поток "насыпает" в файл 6Гб данных минимум. Через 10 секунд у вас уже почти 60Гб.
Для 2-4К может быть до 50 раз больше (как Вам 3Тб данных за 10 секунд 4К 240fps)
Как говорится, "Бойся своих желаний"
покопайся по ссылке. Но если бы я сам разрабатывал/писал прошивку телевизора.
То программно было можно было бы менять канал, а вот сам видео поток не грузился бы процесор совсем.
тюнер сразу бы скидывал поток в область ОЗУ видео буфера.