?

Log in

No account? Create an account
Previous Entry Поделиться Next Entry
SilverCrest USB Video Grabber
dil wrote in ru_linux
Кто-нибудь знает, как можно использовать этот grabber в линуксе для копирования видеокассеты?

С аппаратной точки зрения вроде бы нормально подключился: firmware для него нашлось в пакете firmware-misc-nonfree.deb,
при втыкании его в USB-разъём появляется "Bus 002 Device 002: ID 1d19:6109 Dexatek Technology Ltd."; автоматически запускается пачка модулей: cx231xx_alsa, cx25840, cx231xx, i2c_mux, videobuf_vmalloc, tveeprom, cx2341x, videobuf_core, rc_core, v4l2_common, videodev, media; и появляются /dev/media0 , /dev/vbi0, /dev/video0.

Но при подключении к этому grabber'у видеокамеры, которая проигрывает старую видиеокассету, ни mplayer, ни vlc ничего не могут показать из этих /dev/ .

Только ffmpeg'ом удалось узнать формат данныих, которые идут из /dev/video0: "Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 720x576, 165888 kb/s, 25 fps, 25 tbr, 1000k tbn, 1000k tbc", и им удалось записать видео: "ffmpeg -i /dev/video0 -c copy out.avi". Этот avi потом уже можно посмотреть и mplayer'ом, и vlc. Но качество видео довольно поганое, а звук вовсе не записывается.

Так как можно нормально записать через этот grabber видеокассету вместе со звуком?
Метки: , , ,

  • 1
Так ffmpeg для записи звука надо аудиоустройство указать. Судя по модулям, в ALSA что-то должно появиться.

Это видели?

Edited at 2018-08-07 21:23 (UTC)

А какое устройство можно указать для записи звука?

Да, эту статью читал, но там никаких нужных мне деталей нету.

Ну как же нету :)

These devices must be created by the driver in order for this device to work successfully:
Cx231xx Audio Analog Stereo - used for audio input
cx231xx #0 vbi - used by v4l
cx231xx #0 video - used by v4l


Cморите выхлоп arecord -l, ориентируясь по имени аудиодевайса (Cx231xx Audio Analog Stereo). Ну или через alsamixer попробуйте установить параметры. Тут примеры.

Если проще через GUI, то можно вбить в опции устройства видеозахвата VLC параметры видеопотока определенные ffmpeg'ом и выбрать аудиоустройство для захвата звука.

Edited at 2018-08-07 22:37 (UTC)

Вы таки видели девайсы SilverCrest в linux hardware db?
Возможно, что используется и/или иной чип с иной прошивкой.

# arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: PCH [HDA Intel PCH], device 0: ALC3235 Analog [ALC3235 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Cx231xxAudio [Cx231xx Audio], device 0: Cx231xx Audio [Conexant cx231xx Capture]
  Subdevices: 1/1
  Subdevice #0: subdevice #0


Попробовал добавить к командную строку ffmpeg'f -f alsa -i hw:2 , но вместо оригинального звука получился какой-то хронический треск.
И только когда я убрал -c copy, и поменял файл на out.mpg, звук стало слышно. Видео в такой файл ззаписывается в mpeg1, звук в mpeg2.
Но видео всё равно поганое, слишком крупные точки виднеются. На самой кассете такое вряд ли может быть.

Возможно имеющийся драйвер поддерживает только низкое разрешение для данного девайса, давайте выхлоп v4l2-ctl --all (возможно придется поставить пакет v4l-utils, если у Вас Debian-based дистрибутив). Заодно попробуйте попробуйте поиграться настройками драйвера через утилиту управления параметрами V4L2: "V4L2 Control Panel" или "Qt V4L2 Control Panel", ЕМНИП, в Debian-based идут отдельными от основных v4l2-утилит пакетами v4l2ucp и qv4l2 (Qt версия утилиты стабильнее, по моему опыту).

Edited at 2018-08-08 20:45 (UTC)

Где-то, в настройках ffmpeg должны быть опции сохранения RAW исходного видео.
То есть, сохраняя видео-поток кадр за кадром, и дальше сливая в один контейнер аудио и видео, и лишь на этом обрабатывая видео кодеками.

Извените за грубое слово windows, но так делал полноценное сохранение оригинала видео с непомню-какой-программой когда-то давно под win.
Но идея сама - ясна, программы - они лишь средство воплощения идеи.

Edited at 2018-08-09 09:37 (UTC)

Вот я и ищу, как записать видео и звук в наиболее оригинальном виде. Потом уже сконвертирую в другие форматы.

> ... и появляются /dev/media0 , /dev/vbi0, /dev/video0
Стоит игра свеч ночных, дабы глянуть ffmpeg --help и откроются глазам карим information / capabilities:

blitz@inode ~ % ffmpeg -decoders
ffmpeg version n4.0.2 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 8.1.1 (GCC) 20180531</code>
... много информации о способностях декодера ffmpeg, именно этой версии.


blitz@inode ~ % ffmpeg -decoders
ffmpeg version n4.0.2 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 8.1.1 (GCC) 20180531</code>
... много информации о способностях декодера ffmpeg, именно этой версии.

blitz@inode ~ % ffmpeg -decoders | grep 'A'
... info в цвете, about audio декодерах, используемых ffmpeg

blitz@inode ~ % ffmpeg -decoders | grep '^A'
... info about об используемых audio libs

Блиц подходит к задаче так.
Выяснить способность ffmpeg в умение читать Тору - основные аудио-кодеки, см. выше. Суть первое.
Выяснить возможность чтения аудио канала с USB device с ALSA в кернеле. Проверяется с alsamixer.

Вот здесь - возможно/предполагается, нужно смонтировать особый драйвер аудио/видео SilverCrest. Суть не факт, что поднимется под *nix.
btw, SilverCrest - торговая марка поделия из супермаркетов LIDL. Дискаунтеры. Tаки лучше ALDI и надежда есть, что запустится.

Edited at 2018-08-08 01:04 (UTC)

ИМХО звук можно читать через штатную звуковую карту. главное - видео

аудиоканал оказался называемым hw:2

Умное и легкое решение - приветствуется всегда!
Кто молодец? dil молодец!

Приходилось указывать в строке загрузки кернела указывать "snd_hda_intel:0"
Для того, чтобы USB DAC стал девайсом дефолтным для *nix.

И теперь, самое время проверить - какие именно звуковые карты опознал кернел в вашем случае:
lsmod | grep snd

Как раз недавно оцифровывал кассету.
Поставь пакет qv4l2, там прога позволяет менять настройки видео и показывает результат.
Если видео некорректно обрезается - менять формат PAL/NTSC, соотношение сторон (обычно PAL, 720x576, 4:3).
Если видео идёт пересвеченное - уменьшать яркость/контраст в контролах v4l.

Techically correct, увидеть периферийные устройства глазами kernel и DE.
Как-то, издав приказ - показать все USB devices, lsusb


blitz@inode ~ % lsusb
Bus 002 Device 003: ID 0d8c:0024 C-Media Electronics, Inc.
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 004: ID 05e3:0743 Genesys Logic, Inc. SDXC and microSDXC CardReader
Bus 004 Device 003: ID 0451:8140 Texas Instruments, Inc. TUSB8041 4-Port Hub
Bus 004 Device 002: ID 0451:8140 Texas Instruments, Inc. TUSB8041 4-Port Hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 005: ID 0451:8142 Texas Instruments, Inc. TUSB8041 4-Port Hub
Bus 003 Device 004: ID 413c:301a Dell Computer Corp.
Bus 003 Device 003: ID 413c:2113 Dell Computer Corp.
Bus 003 Device 002: ID 0451:8142 Texas Instruments, Inc. TUSB8041 4-Port Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 002 Device 003: ID 0d8c:0024 C-Media Electronics, Inc.
Bus 003 Device 004: ID 413c:301a Dell Computer Corp.
Bus 003 Device 003: ID 413c:2113 Dell Computer Corp.

C-Media Electronics - это внешний USB DAC 96KHz 24bit + S/PDIF
Dell Computer Corp - это HDMI/DigitalPort digital audio port display.
Не спрашивайте, какие звуковые характеристики имеет из-цифры-в-аналог-преобразователь на борту монитора.
Инженегры DELL не сообщают, значит не выше 48KHz 16bit.

Это же подтверждает панел управления sound в Cinnamon DE.
+ знакомит с built-in audio chip'ом motherboard.



Сказать можно следуещее на основе анализа.
SilverCrest должен показаться в списке девайсов листинга lsusb и девайсов sound panel DE.

Если используется DE, выбрать audio выход SilverCrest дефолтным девайсом аудио-воспроизведения. Потому что встроенное в DE pulseaudio.
Если используется command line alsamixer, то ffmpeg наврядли заработает и пару шекелей без X server ))
Т.е. - не запустится, ибо видео некуда показывать.

Ну, звук удалось записывать, используя -f alsa -i hw:2

Вот команда для оцифровки:
ffmpeg -f v4l2 -standard PAL -thread_queue_size 512 -i /dev/video1 -f alsa -thread_queue_size 512 -i hw:3,0 -vf yadif -vcodec libx264 -preset fast -r 25 -aspect 4:3 -acodec libmp3lame -b:a 128k -af pan=1:c0=c0 01.mkv
/dev/video1 - имя v4l2-девайса
hw:3,0 - имя звуковой которая появляется при подключении девайса
проверить что это именно то устройство можно с помощью qv4l2 про который я писал в комментарии выше
-af pan=1:c0=c0 - монозвук, по умолчанию пишет два канала, в одном тишина.
-aspect 4:3 у меня почемуто не срабатывал, потом приходилось прогонять видео через avidemux без перкодировки, просто чтобы прописать аспект.

Подходящие настройки v4l2 можно выставить командой
v4l2-ctl -d 1 -c contrast=400,brightness=440
у меня оно ругается что не может установить, но устанавливает
даю эту команду когда ffmpeg уже запустился.

Вот так более-менее прилично записалось:
ffmpeg -f v4l2 -standard PAL -thread_queue_size 512 -i /dev/video0 -f alsa -thread_queue_size 512 -i hw:2 -vf yadif -vcodec libx264 -preset slow -r 25 -aspect 1.250 -acodec libmp3lame -q:a 2 -t 5405 out.mkv

Видео из /dev/video0, звук из hw:2, как определилось по arecord -l : https://ru-linux.livejournal.com/3067846.html?thread=45050310#t45050310

-preset slow, а не fast, это лучше для x264
-aspect 1.250, поскольку разрешение кадров 720x576
-q:a 2 - это лучше для кодирования звука в mp3

"-aspect 1.250, поскольку разрешение кадров 720x576"

да, разрешение 720x576, но так оно сплющено по ширине. При проигрывании нужно применять аспект 4:3 тогда нормально. Видак так и делает - растягивает исходную картинку до аспекта 4:3.

И для проверить звучания акустики теперь - https://www.youtube.com/watch?v=L51beH5O3uQ
Партия басс-гитары - отменна!

  • 1