1 (изменено: DnsIs, 2013-02-17 20:25:49)

Тема: CMD/BAT: Снимок с web-камеры

Доброго дня.
Не получается сделать полноценный скриншот с камеры.


mplayer.exe tv:// -tv device=0 -ss 5 -frames 1 -vo jpeg:quality=100 -vf scale=1280:1024
mplayer.exe tv:// -tv device=0:width=1280:height=1024 -vf screenshot -frames 1 -vo png
ffmpeg.exe -f dshow -i video="Philips SPC 1030NC Webcam" -s 1280x1024 -f image2 000.jpg

Все эти способы делают снимок в разрешени 640*480.

Mplayer пишет

tv.c: norm_from_string(pal): Bogus norm parameter, setting default.
Error: Cannot set norm!
Unable to set requested width: 1280
Unable to set requested height: 1024
Selected input hasn't got a tuner!

При открыти камеры в VLC, изображение идет в разрешении 1280*1024. Причем в реальном разрешении, а не в масштабированном.
Могу конечно открыть камеру из командной строки так вот.

vlc.exe dshow://  :dshow-vdev=Philips SPC 1030NC Webcam :dshow-adev=none  :live-caching=300

Но сделать снимок и вырубить VLC не получается.

Дайте советы, плз. Может есть еще какие-нибудь инструменты?

Нас невозможно сбить с пути, нам пофигу куда идти.

2

Re: CMD/BAT: Снимок с web-камеры

DnsIs, а скриптом через WIA — не пробовали?

3 (изменено: UNDYING, 2013-02-17 21:53:50)

Re: CMD/BAT: Снимок с web-камеры

Доброго.

Но сделать снимок и вырубить VLC не получается.

Дайте советы, плз. Может есть еще какие-нибудь инструменты?

http://wiki.videolan.org/VLC_command-line_help или "vlc -H"

Snapshot:
      --snapshot-path=<string>   Video snapshot directory (or filename)
          Directory where the video snapshots will be stored.
      --snapshot-prefix=<string> Video snapshot file prefix
          Video snapshot file prefix
      --snapshot-format={png,jpg}
                                 Video snapshot format
          Image format which will be used to store the video snapshots
      --snapshot-preview, --no-snapshot-preview
                                 Display video snapshot preview (default
                                 enabled)
          Display the snapshot preview in the screen's top-left corner.
          (default enabled)
      --snapshot-sequential, --no-snapshot-sequential
                                 Use sequential numbers instead of timestamps
                                 (default disabled)
          Use sequential numbers instead of timestamps for snapshot numbering
          (default disabled)
      --snapshot-width=<integer [-2147483648 .. 2147483647]>
                                 Video snapshot width
          You can enforce the width of the video snapshot. By default it will
          keep the original width (-1). Using 0 will scale the width to keep
          the aspect ratio.
      --snapshot-height=<integer [-2147483648 .. 2147483647]>
                                 Video snapshot height
          You can enforce the height of the video snapshot. By default it will
          keep the original height (-1). Using 0 will scale the height to keep
          the aspect ratio.

Вырубить vlc по окончанию:

Playlist
These options define the behavior of the playlist. Some of them can be overridden in the playlist dialog box.
  -Z, --random, --no-random      Play files randomly forever (default disabled)
          VLC will randomly play files in the playlist until interrupted.
          (default disabled)
  -L, --loop, --no-loop          Repeat all (default disabled)
          VLC will keep playing the playlist indefinitely. (default disabled)
  -R, --repeat, --no-repeat      Repeat current item (default disabled)
          VLC will keep playing the current playlist item. (default disabled)
      --play-and-exit, --no-play-and-exit
                                 Play and exit (default disabled)
          Exit if there are no more items in the playlist. (default disabled)
      --play-and-stop, --no-play-and-stop
                                 Play and stop (default disabled)
          Stop the playlist after each played playlist item. (default disabled)
      --play-and-pause, --no-play-and-pause

Возможно придётся поискать сам vlc поновее(или наоборот - древнее) или самому собрать.
Кстати, по англоязычным форумам говорят, что вывод в картинку (раскадровку, ключ " -V image") в текущем(!) vlc поломали.

Хотя в таком виде работает (фильтр scene, VLC 2.0.5, ArchLinux):

%> cvlc "1.Robot-policeyskiy.1987.DivX.DVDRip..avi" --start-time 15 --stop-time 16 --play-and-exit --scene-format=png --scene-ratio=30 --scene-prefix=snap --scene-path=$(pwd) --video-filter=scene --vout=dummy
%> ls
1.Robot-policeyskiy.1987.DivX.DVDRip..avi  snap00001.png

Поиграйтесь с настройками --start-time, --stop-time, --scene-ratio

4

Re: CMD/BAT: Снимок с web-камеры

alexii пишет:

DnsIs, а скриптом через WIA — не пробовали?

Хотелось кроссплатформенное решение.

2UNDYING, курил я wiki.videolan, но больше --full-help.
Я пробовал с -V image, оно не работает, я думал что я туплю.

Так вот работает, но выскакивает окошко VLC, которого бы видеть не хотелось.

dshow://  :dshow-vdev="Philips SPC 1030NC Webcam" :dshow-adev=none  :live-caching=300
--start-time 0
--stop-time 1
--scene-ratio=30
--play-and-exit
--scene-format=jpg
--scene-prefix=snap
--scene-path="c:\tmp"
--video-filter=scene
--vout=dummy

Стыдно признать, но я не до конца понимаю вообще логику построения командной строки этого загадочного VLC.

Беру например такую строку:

vlc --rotate-angle=90 INPUT-VIDEO

Мечтаю получить повернутое изображение. А вот фиг, не работает.

Нас невозможно сбить с пути, нам пофигу куда идти.

5

Re: CMD/BAT: Снимок с web-камеры

DnsIs пишет:

Стыдно признать, но я не до конца понимаю вообще логику построения командной строки этого загадочного VLC.

Аналогично...
Может быть:


  -d, --daemon, --no-daemon      Запускать в фоне (по умолчанию
                                 выключено)
          Запускать VLC как фоновый процесс. (по умолчанию
          выключено)
      --pidfile <строка>   Записывать идентификатор процесса
                                 в файл
          Записывает идентификатор процесса в указанный
          файл.

Вообще, в составе vlc должен быть cvlc (справедливо для Linux).

6

Re: CMD/BAT: Снимок с web-камеры

alexii пишет:

DnsIs, а скриптом через WIA — не пробовали?

var Device = new ActiveXObject("WIA.DeviceManager");
WScript.Echo(Device.DeviceInfos.Count);

Получаю "0"

Куда копать?

Нас невозможно сбить с пути, нам пофигу куда идти.

7

Re: CMD/BAT: Снимок с web-камеры

Наверное, никуда .

8

Re: CMD/BAT: Снимок с web-камеры

Ну вот и решилась моя задачка.

Все таки сделать скриншоты с камеры монстром VLC не очень понравилось, стал копать дальше.
Сначала решил отступиться от желания сделать кроссплатформенный вариант, стал рассматривать предложенный alexii-ом путь, через WIA. Ничего не вышло.

Пока курил маны к Mplayer, наткнулся на список разработчиков, и оказалось, что ответственный за TV-модуль разработчик, Владимир Ворошилов, живет со мной в одном городе - Омске. Я очень удивился и обрадовался. Написал ему, отправил отладочную информацию + лог с версии Mplayer-debug и получил ответ.
Баг, был. За 2 дня, с третьей попытки, я получил рабочий Mplayer.
Оказалось что Владимир очень отзывчивый и грамотный человек. Огромнейшее ему спасибо.

Еще я вспомнил прогу Prey, в которой естьвозможность снятия скриншотов с камеры. Покопался в архиве и нашел таки там утилиту (17Кб-exe + 300Кб-dll), которая без лишних вопросов делает снимок с камеры.

Сегодня еще вечером потрепал ffmpeg-20130217-git-b8bb661-win32-shared - версию, в которой dll ки скомпилены отдельно. Что заинтерисовало:

ffmpeg.exe -f dshow -i video="Philips SPC 1030NC Webcam" -s 1280x1024 out.mp4

Делает захват в разрешении 640*480 растянутом до 1280*1024, а вот

ffplay.exe -f dshow -i video="Philips SPC 1030NC Webcam" -s 1280x1024

Захватывает в честном 1280*1024.

У кого-нибудь есть мысли по поводу ffmpeg, ffplay?

Нас невозможно сбить с пути, нам пофигу куда идти.

9

Re: CMD/BAT: Снимок с web-камеры

DnsIs пишет:

Пока курил маны к Mplayer, наткнулся на список разработчиков, и оказалось, что ответственный за TV-модуль разработчик, Владимир Ворошилов, живет со мной в одном городе - Омске. Я очень удивился и обрадовался. Написал ему, отправил отладочную информацию + лог с версии Mplayer-debug и получил ответ.

Баг, был. За 2 дня, с третьей попытки, я получил рабочий Mplayer.

Бывает . Передавайте ему наши искренние благодарности и наилучшие пожелания в дальнейшей работе.

10

Re: CMD/BAT: Снимок с web-камеры

DnsIs пишет:

Сегодня еще вечером потрепал ffmpeg-20130217-git-b8bb661-win32-shared - версию, в которой dll ки скомпилены отдельно. Что заинтерисовало:

ffmpeg.exe -f dshow -i video="Philips SPC 1030NC Webcam" -s 1280x1024 out.mp4

Делает захват в разрешении 640*480 растянутом до 1280*1024, а вот

ffplay.exe -f dshow -i video="Philips SPC 1030NC Webcam" -s 1280x1024

Захватывает в честном 1280*1024.

У кого-нибудь есть мысли по поводу ffmpeg, ffplay?


Мужики, смотрите что мне на эту загадку ответили на хабре.

Проблема достаточно странная, но обсуждаемая на зарубежных форумах у ffmpeg'а есть конкретное представление о входных параметрах и о параметрах того что должно получиться на выходе. Так, если Вы укажете -s 1280x1024 до -i — тоже получите желаемый результат захвата без растягивания.

т.е.
ffmpeg.exe -f dshow -s 1280x1024 -i video=«Philips SPC 1030NC Webcam» out.mp4
ffmpeg -f video4linux2 -s 1280x1024 -i /dev/video0 out.mp4

Проверил, работает. Ура!

Нас невозможно сбить с пути, нам пофигу куда идти.