1 (06.10.2010 17:48:27 отредактировано divan)

Тема: Запись видео скринкастов с экрана n900

Предлагаю тут обсуждать способы и подробности создания видеоскринкастов с N900.
Кто не понял, это что-то вроде скриншота экрана, только в видео )))
Можно, конечно, просто камеру поднести к телефону и снимать, но это далеко не лучший выход - и качество не то, и пользование тачскрином закрывает экран и тд.

Чисто теоретически есть два выхода:
а) записывать прямо на зверьке.
б) записывать вывод с экрана куда нибудь на другом устройстве.

Вариант а) хорош тем, что для него ничего не нужно кроме самого n900. Но я очень сомневаюсь, что он потянет запись экрана с более-менее приличной частотой кадров, при этом не очень сильно нагружая систему. Вобщем-то, я этот вариант даже не копал, и не знаю, работает ли он. Знаю как делать такое на обычном десктопе, поэтому если будет время, попробую.

Вариант б) - направлять вывод экрана куда нибудь - например, через видеовыход на видеовход тюнера, или - что гораздо изящнее - выступить в виде vnc-сервера и записывать на стационарном компьютере вывод, подсоединившись vnc-клиентом.
Опишу именно этот метод, хотя он и не дает достаточно удовлетворительной скорости записи - но надеюсь, все возможно и это вопрос оптимизации способа.

Итак, ставим на n900 программу X11VNC:

apt-get install x11vnc

На компьютере ставим xvncviewer(есть разные вьюверы, выбираете на свой вкус - xvncviewer, xvnc4viewer, tightvncviewer, vinager, etc):
(если у вас Debian/Ubuntu):

apt-get install xvncviewer

Теперь, нужно чтобы компьютеры видели друг друга по сети. Если между ними есть стабильный WI-FI - хорошо, можно пользовать его(правда рекомендуют на n900 для этого соединения отключить режим сохранения энергии), но как вариант - пользовать USB-соединение (и программу mad-developer, которая назначит адреса и выдаст по dhcp адрес компьютеру). Я пользовал последнее.
На n900 запускаем:

x11vnc

(только не пишите опцию -ncache 10 - она выдает буферы экрана на вывод vnc тоже)

На компьютере:

xvnc4viewer 192.168.2.15 

(где 192.168.2.15  - IP адресс N900)
можно использовать опцию -ViewOnly=1 - чтобы запретить ввод мышкой и клавиатурой.
Появившееся окно с экраном N900 рекомендую сделать "Always on top".

Дальше самое интересное. Для начала нам нужен будет ffmpeg, причем желательно самый свежий - для Ubuntu, рекомендую взять из репозитория Medibuntu. Теперь нам нужно будет а) получить координаты окна, б) приказать ффмпегу записывать именно этот участок окна(соответственно двигать окно нельзя будет и перекрывать другими окнами - иначе запишется на видео).
Запускаем:

xwininfo | grep geometry 

и выбираем окно vnc-вьера. Команда вернет нам координаты окна. Их мы вписываем в следующую команду:

ffmpeg -f x11grab -r 15 -s 800x480 -i :0.0+x,y -vcodec libx264 -vpre lossless_ultrafast -threads 0 -y n900_screencast_$(date +%H_%M_%S).mkv

где, x,y - соотвественно координаты окна.
Чтобы не мучатся, можно это дело автоматизировать и засунуть в скрипт:

vim n900_screengrab.sh
:set paste
#!/bin/bash

# Select window with xvncviewer
echo "Please, select window with vncviewer opened"
WINGEOM=$(xwininfo | grep geometry | tr ' ' '+')
OFFSET=$(echo $WINGEOM | cut -d'+' -f5,6 | tr '+' ',' | sed 's:^:+:')
ffmpeg -f x11grab -r 15 -s 800x480 -i :0.0$OFFSET -vcodec libx264 -vpre lossless_ultrafast -threads 0 -y n900_screencast_$(date +%H_%M_%S).mkv

exit 0
:wq

Если у вас ffmpeg ругается на кодек(по умолчанию, например, в Убунте, эти кодеки не стоят), то можно попробовать писать в mpeg2:
ffmpeg -f x11grab -r 25 -s 800x480 -i :0.0$OFFSET -sameq n900_screencast_$(date +%H_%M_%S).mpg

Вот пример получившегося видео этим методом (музыка была наложена позже в youtube с помощью AudioSwap):

Качество картинки ниже оригинального - не знаю точно почему, вряд ли изза скорости, и точно не изза сжатия видео - так оно видно и в vnc-клиенте. Видимо x11vnc рендерит вот так. Ну и скорость и плавность анимаций тут не оценишь, увы. Но так, чтобы показать последовательность действий, что запускать и куда что писать - вполне сойдет )

---
Быть мрачным и непонятным очень просто. Охрененно трудно быть добрым и ясным. (с) Стивен Содеберг.

2

Re: Запись видео скринкастов с экрана n900

у меня все встало как положено но вот ffmpg отругал. Писал видео через recordmydesctop выбрав соответствующее окно с телефона smile

Автору поста зачет smile

Поделиться

3 (04.02.2011 02:52:15 отредактировано hxka)

Re: Запись видео скринкастов с экрана n900

По поводу пункта а — в репозиториях есть ffmpeg с поддержкой x11grab.
Ушёл изучать к нему документацию.
Похоже, придётся сначала писать сырое видео, а сжимать потом.
UPD:
Ничего путного не нашёл. Ман уродский.
Ничего приемлемого добиться не удалось.

A mammal should be able to hunt mice, hibernate, fly, chew its cud, echolocate, invent tools, lay eggs, burrow. Speciation is for insects.

Поделиться

4

Re: Запись видео скринкастов с экрана n900

hxka, я тогда не записал, но вариант а) (писать прямо на зверьке ffmpeg'ом) я тоже активно потестил - работает и дает результаты точно такие же как и расписанный выше способ б). Перепробовал почти все кодеки - быстрее всего было,да, сырое видео, но все равно хватало ненадолго.

Впрочем, видел где-то на ютьюбе очень классные скринкасты с приличным фпс, до сих пор не понял как их сделали.

---
Быть мрачным и непонятным очень просто. Охрененно трудно быть добрым и ясным. (с) Стивен Содеберг.

Сайт divan

Поделиться

5

Re: Запись видео скринкастов с экрана n900

divan, а они делают примерно вот так:
Подключают по кабелю(который к телевизору) N900 к профессиональной плате захвата типа Pinnacle и с её помощью записывают.

Поделиться

6

Re: Запись видео скринкастов с экрана n900

smith пишет:

Подключают по кабелю(который к телевизору) N900 к профессиональной плате захвата типа Pinnacle и с её помощью записывают.

А, ну может быть, да. Но вариант не всем доступный, увы.

---
Быть мрачным и непонятным очень просто. Охрененно трудно быть добрым и ясным. (с) Стивен Содеберг.

Сайт divan

Поделиться

7

Re: Запись видео скринкастов с экрана n900

divan как ты до такого додумываешься?? Все это замутить

???????????? - сотри монеткой, чтобы получить пароль от этого аккаунта

Поделиться

8 (10.07.2011 01:32:38 отредактировано divan)

Re: Запись видео скринкастов с экрана n900

Собственно попробовал и я вариант с платой захвата - pcmcia-шная карточка AverMedia TV, недорогая.
Записывал с помощью vlc, вот такой командой:

cvlc v4l2:///dev/video1 :v4l2-standard=0 :v4l2-input=1 :input-slave=alsa://plughw:2,0 --sout='#transcode{vcodec=mp2v,vb=4096,acodec=mp2a,ab=192,scale=1,channels=2,deinterlace,audio-sync}:duplicate{dst=display,dst=std{access=file, mux=ps,dst="out.mpg"}}'

Потом кропнул в Handbrake и залил на youtube и vimeo:
http://www.youtube.com/watch?v=meTeTCSuCcc


(тоже самое на vimeo: http://vimeo.com/26208659)

Вобщем, качество пониже чем в способах описанных выше, зато приемлимое фпс, записывает звук и вообще, самый удобный и быстрый способ.

---
Быть мрачным и непонятным очень просто. Охрененно трудно быть добрым и ясным. (с) Стивен Содеберг.

Сайт divan

Поделиться

9

Re: Запись видео скринкастов с экрана n900

Да, здорово.
Мне кажется, единственный способ писать с хорошим фпс и качеством — писать не с N900, а с SDK :)

A mammal should be able to hunt mice, hibernate, fly, chew its cud, echolocate, invent tools, lay eggs, burrow. Speciation is for insects.

Поделиться