Версия для печати темы
Форум на CrossPlatform.RU _ Qt Мультимедиа _ [РЕШЕНО] Получилось сделать захват с web камеры, а как быть с tv-тюннером?
Автор: Revil 12.10.2010, 5:45
Я уже, как две недели начал изучать QT и то из-острой необходимости, в последний раз кодил наверное 6-7 лет назад и мое кунг-фу может быть не таким хорошим . Собственно сабж. В качестве Бэкенда использую Phonon-backend-vlc, ОС Ubuntu 10.10.
в системе стоит веб-камера (/dev/video0) и тв-тюннер (/dev/video1).
видео с веб камеры получаю вот так вот :
QString url("v4l2://///dev/video0");
void MainWindow::on_pushButton_clicked()
{
ui->Player_1->play(Phonon::MediaSource(url));
}
при QString url("v4l2://///dev/video1"); получаю помехи. Ну еще бы, ведь в тюнере несколько входов.
Вопрос в том, как получить картинку с входа s-video, и указать стандарты PAL/SECAM ...думаю есть такая возможность. В самом VLC получается получить картинку с любого входа тюнера, а как быть в этом случае?
Обещаю, что если тут кого то задел своим быдлокодерством, то больше не буду. Но в данный момент очень нужна ваша помощь.
думаю нужно, как то параметры вскормить v4l2 драйверу, но как?
Автор: Revil 12.10.2010, 6:55
если терминале vlc v4l2:///dev/video1 :v4l2-input=2, vlc захватывает виде с канала s-video, а в программе не могу так как проблема с пробелом..его как то можно экранировать?
Автор: kwisp 12.10.2010, 8:56
Revil,
попробуй это
Цитата
QUrl::QUrl ( const QString & url, ParsingMode parsingMode )
This is an overloaded function.
Parses the url using the parser mode parsingMode.
Цитата
enum QUrl::ParsingMode
The parsing mode controls the way QUrl parses strings.
Constant Value Description
QUrl::TolerantMode 0 QUrl will try to correct some common errors in URLs. This mode is useful when processing URLs entered by users.
QUrl::StrictMode 1 Only valid URLs are accepted. This mode is useful for general URL validation.
In TolerantMode, the parser corrects the following invalid input:
Spaces and "%20": If an encoded URL contains a space, this will be replaced with "%20". If a decoded URL contains "%20", this will be replaced with a single space before the URL is parsed.
Single "%" characters: Any occurrences of a percent character "%" not followed by exactly two hexadecimal characters (e.g., "13% coverage.html") will be replaced by "%25".
Reserved and unreserved characters: An encoded URL should only contain a few characters as literals; all other characters should be percent-encoded. In TolerantMode, these characters will be automatically percent-encoded where they are not allowed: space / double-quote / "<" / ">" / "[" / "" / "]" / "^" / "`" / "{" / "|" / "}"
ну либо попробуй заменить пробел на "%20" вручную
Автор: Revil 12.10.2010, 15:06
kwisp
вечером буду дома, попробую
когда
QString url("v4l2://///dev/video1 :v4l2-input=2");
по логам видно, что идет преобразование в "v4l2:///dev/video1%20:v4l2-input=2", что не есть гуд...то есть приемник его считает одним целым. Если писать слитно без пробела то плеер работает, так же как и без параметра :v4l2-input=2. Уже не воспринимает параметр.
Для проверки переменную url вставляю в label
т.е
ui->label->setText(url);
то label показывает все как есть...даже слэши не урезает.
Автор: kwisp 12.10.2010, 15:19
Revil,
вишь в чем дело у MediaSource есть конструкторы:
Цитата
MediaSource ( const QString & fileName )
MediaSource ( const QUrl & url )
ты задаешь первый, по-моему. Может явно указать что ты передаешь QUrl ?
Автор: Revil 12.10.2010, 15:25
kwisp
вроде я пробовал оба варианта....но все же еще раз попробую когда буду дома. Кто его знает может, что то упустил т. к. не спал до 9 утра
Автор: Revil 13.10.2010, 17:49
чета не разобрался я ... уже мысли настроить модули для тв-тюннера так чтоб работал только S-video или создать видео устройство к примеру /dev/svideo0 откуда можно будет напрямую схватит видео со входа S-video тюнера. мля...уже гоняю.
Автор: kwisp 13.10.2010, 17:52
Revil,
если получится, выложи код и описание действий сюда, интересная штуковина.
Автор: Revil 14.10.2010, 5:06
kwisp
к счастью не пришлось прибегнуть к тем выше мною описанным извращениям...все оказалось намного проще, настолько просто, что мне щас стыдно показывать решение
QString url("v4l2://///dev/video1:input=2");
void MainWindow::on_pushButton_clicked()
{
ui->Player_1->play(Phonon::MediaSource(url));
}
А я как в терминале для vlc пытался пихнуть параметр в виде :v4l2-input=2 и то через пробел.
Теперь можно смело покупать http://www.nix.ru/autocatalog/svga_other/Video_Capture_card_AVerEZCapture_videoconferencing_PCI_8137.html для захвата видео. Думаю чем использовать целый комбайн типа тюнера, лучше юзать плату с двумя видеовходами тем более она том же чипе BT-878 (хотя и устаревшем), что и мой тюнер.
Если можно добавь пожалуйста в названии темы [РЕШЕНО]...возможно тема, чем нибудь поможет новичку. Спасибо
Автор: sibmail 28.3.2011, 17:55
Цитата(Revil @ 14.10.2010, 5:06)
kwispк счастью не пришлось прибегнуть к тем выше мною описанным извращениям...все оказалось намного проще, настолько просто, что мне щас стыдно показывать решение
QString url("v4l2://///dev/video1
:input=2");
void MainWindow::on_pushButton_clicked()
{
ui->Player_1->play(Phonon::MediaSource(url));
}
А я как в терминале для vlc пытался пихнуть параметр в виде :v4l2-input=2 и то через пробел.
Теперь можно смело покупать http://www.nix.ru/autocatalog/svga_other/Video_Capture_card_AVerEZCapture_videoconferencing_PCI_8137.html для захвата видео. Думаю чем использовать целый комбайн типа тюнера, лучше юзать плату с двумя видеовходами тем более она том же чипе BT-878 (хотя и устаревшем), что и мой тюнер.
Если можно добавь пожалуйста в названии темы [РЕШЕНО]...возможно тема, чем нибудь поможет новичку. Спасибо
подскажите под windows такое будет работать? и что писать в url?
Автор: RazrFalcon 28.3.2011, 19:26
Цитата(sibmail @ 28.3.2011, 17:55)
подскажите под windows такое будет работать? и что писать в url?
Скорее всего нет.
Автор: Revil 4.4.2011, 1:34
Цитата(sibmail @ 28.3.2011, 17:55)
подскажите под windows такое будет работать? и что писать в url?
на виндовс нет v4l2. Для захвата видео с тюнера в виндовс придется юзать Direct Show ... вроде как то так.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)