LINUX.ORG.RU

[android][emulator][camera]без jmf

 , ,


0

0

Пишу одну поделку just for fun, которая должна грабить preview камеры и в реальном времени обрабатывать. Трубки с андроидом для отладки нет (не хочется покупать только ради этого), пользуюсь эмулятором из sdk. Собственно, android sdk + ubuntu, ага.

Решение jmf + WebcamBroadcaster от Tom Gibara (куча ссылок на него от гугла по этому вопросу) не подходит - не определяется моя камера (logitech quickcam 9000) и ковырять это влом.

Только что нашел еще одно - v4l4j, послезавтра на работе гляну и вроде должно подойти. Ну а может, кто уже нашел свой элегантный костыль и поделится идеей?

Вероятно, камера не поддерживает колорспейс, с которым умеет работать та поделка. Для этого есть libv4l.

$ pacman -Qi v4l-utils
Name           : v4l-utils
Version        : 0.8.3-1
URL            : http://freshmeat.net/projects/libv4l
Licenses       : LGPL
Groups         : None
Provides       : libv4l=0.8.3
Depends On     : glibc  gcc-libs  sysfsutils
Optional Deps  : qt
Required By    : None
Conflicts With : libv4l
Replaces       : libv4l
Installed Size : 1308.00 K
Packager       : Thomas Bächler <thomas@archlinux.org>
Architecture   : x86_64
Build Date     : Sun 27 Feb 2011 05:18:05 AM EST
Install Date   : Sun 27 Feb 2011 11:20:22 AM EST
Install Reason : Explicitly installed
Install Script : No
Description    : Userspace tools and conversion library for Video 4 Linux
Достаточно поделку запускать с нужным LD_PRELOAD, и всё будет работать.

mv ★★★★★
()
Ответ на: комментарий от mv

Всё верно, вроде как c LD_PRELOAD должно работать. У того же Tom-а проскальзывала инфа, что кто-то завел на генте эту jmf для capture с вебки с помощью dv4lstart. Хотя разрабы jmf пишут: «On Linux, devices that have a Video4Linux driver are expected to work, but not extensively tested». Ну да гентушники - они такие :)

У меня же так (почему и писал, что не хочу ковыряться)

1. Если в dv4lstart

export LD_PRELOAD="/usr/local/lib/libdv4l.so"

то выдает:

~~~@home:~/install/jmf/bin$ dv4lstart ./jmfinit 
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0x7) at pc=0x8af81998, pid=14375, tid=3073321872
#
# JRE version: 6.0_18-b18
# Java VM: OpenJDK Server VM (16.0-b13 mixed mode linux-x86 )
# Derivative: IcedTea6 1.8.2
# Distribution: Ubuntu 9.04, package 6b18-1.8.2-4ubuntu1~9.04.1
# Problematic frame:
# C  [libpulse.so.0+0x4a998]
    ........
Aborted
2. Если в dv4lstart подставлю родные либы:
export LD_PRELOAD="/usr/lib/libv4l2.so" 
или
export LD_PRELOAD="/usr/lib/libv4l1.so"

то на выходе только звук:

~~~@home:~/install/jmf/bin$ dv4lstart ./jmfinit 
JavaSound Capture Supported = true
JavaSoundAuto: Committed ok

Думается, что v4l4j будет решением, ибо jmf закопано.

lynx4lor
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.