Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Программный снимок экрана (потоковая обработка)  (Прочитано 2491 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн abramius-evolutional

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Здравствуйте уважаемые читатели.
Мой вопрос заключается в том, каким образом в linux (Ubuntu) возможно получить программно изображение - скриншот экрана в виде массива яркостей пикселей?..
То есть хотелось бы иметь возможность обрабатывать потоковое видео, которое снимается с экрана.
Интересует возможность решение данной задачи на языках python, c++, c#.
Буду очень благодарен за помощь.

Оффлайн S_F_H

  • Участник
  • *
  • Сообщений: 129
  • Да будет crossplatform!
    • Просмотр профиля
В Qt C++ есть классы для работы с изображениями в цветовой модели HVS (оттенок, насыщеность, значение). Кстати, еще можно попробовать взять Phonom из того же Qt, она вроде как мультимедиа обрабатывает

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
ffmpeg
libav
GStreamer

в man ffmpeg можно найти примеры использования утилиты с командной строки.
вывод можно вместо файла направить в stdout, а в питоньем скрипте его читать и обрабатывать
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн S_F_H

  • Участник
  • *
  • Сообщений: 129
  • Да будет crossplatform!
    • Просмотр профиля
а в каком формате, если не секрет будут передаваться данные в поток?

Кстати, это помоему просто видеоконвертор, и там ничего не сказано про перехват потокового видео
« Последнее редактирование: 24 Июня 2011, 00:01:31 от S_F_H »

Оффлайн VlaoMao

  • Активист
  • *
  • Сообщений: 308
  • ArchLinux - eMachines e725 && Nokia N950
    • Просмотр профиля

Оффлайн S_F_H

  • Участник
  • *
  • Сообщений: 129
  • Да будет crossplatform!
    • Просмотр профиля
приношу свои извенения  ;)

Оффлайн abramius-evolutional

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Спасибо большое за помощь, информация очень полезна.
Если не затруднит, не могли бы вы подробнее написать как направить видео ни в файл, а в поток, что бы python'ом можно было его обрабатывать?... т. е. как:
1. послать видео в поток
2. считать его в python (т. е. как перевести его (видео) в массив яркостей)
Если будет возможно, примерчик бы был очень кстати. Если нет, то в каком направлении рыть? где доки посмотреть?

Оффлайн Руслан Зиганшин

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
Существует программа recordMyDesktop
На http://recordmydesktop.sourceforge.net/downloads.php можно скачать исходный код этой программы

Оффлайн S_F_H

  • Участник
  • *
  • Сообщений: 129
  • Да будет crossplatform!
    • Просмотр профиля
ffmpeg -f x11grab -s 1280x800 -r 25 -i :0.0 -vcodec qtrle > -1

помоему так. тут
http://rus-linux.net/MyLDP/HOWTO-ru/Bash-Progr-Intro-HOWTO/Bash-Prog-Intro-HOWTO-3.html

сказано как перенаправлять данные в потоки. если я правильно написал, то данные будут идти в стандартный поток вывода stdout

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
ffmpeg -f x11grab -s 1280x800 -r 25 -i :0.0 -vcodec qtrle > -1
помоему так.
Нет, не сработает. Не указан выходной файл, параметр обязательный, поэтому ffmpeg просто работать не будет.

Далее, просто так ffmpeg в stdout писать не будет. Чтобы это сделать, ей нужно сказать, что пишем по протоколу pipe в 1-ю трубу.

Читайте маны, они рулез.
http://www.ffmpeg.org/ffmpeg-doc.html#SEC41

ffmpeg -f x11grab -s 1280x800 -r 25 -i :0.0 -vcodec qtrle pipe:1
В ссылке "внезапно" пояснения некорректны.
qtrle - это не "кодек для захвата", а кодек, которым надо кодировать выходящее видео.

Для кодека qtrle надо еще указать контейнер (формат файла). Например -f mov
ffmpeg -f x11grab -s 1280x800 -r 25 -i :0.0 -vcodec qtrle -f mov pipe:1
Помимо этого для qtrle, похоже, надо еще какие-то параметры задавать, но какие конкретно, мне недосуг сейчас разбираться.
А, понятно.
"Note that some formats (typically MOV), require the output protocol to be seekable, so they will fail with the pipe output protocol."

Да, а лучший источник информации по FFmpeg - по-прежнему ее исходники.
www.libav.org
www.ffmpeg.org
« Последнее редактирование: 24 Июня 2011, 16:58:05 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

 

Страница сгенерирована за 0.016 секунд. Запросов: 21.