Я использую приложение Айпи камера на моем мобильном телефоне с Android для вывода (обмена) видеоизображения с камеры на локальную сеть. Я могу получить к нему доступ через браузер ПК — это нормально.
Тем не менее, я хочу, чтобы OpenCV захватывал этот видеопоток с IP-адреса, набрав
VideoCapture cap("http://admin:[email protected]:8081/?action=stream?dummy=param.mjpg");
while( cap.isOpened() )
{
Mat frame;
if ( ! cap.read(frame) )
break;
cout << "Connected!!";
imshow("lalala",frame);
int k = waitKey(10);
if ( k==27 )
break;
}
и я получил ошибку:
Фактический кодек, который используется телефоном MJPEG (Я прочитал это из приложения на моем мобильном телефоне). Я не знаю, поддерживает ли OpenCV это, но в мобильном приложении используется какой-то уникальный кодек, или на моем компьютере его нет, или, возможно, код C ++ / OpenCV неправильный?
На ПК opencv может захватывать ваш видеопоток с вашего мобильного телефона.
Подобно. Вы используете правильную строку подключения, как это для потока RTSP в моем случае.
VideoCapture capture("rtsp://USER:[email protected]/axis-media/media.amp?camera=2");
Вероятно, у вас нет FFMPEG, установленного полностью. Вам необходимо переустановить Opencv. Сначала вам нужно установить FFMPEG и Opencv. После этого.
В opencv 3.0.0 и 3.1 попробуйте добавить
#include <opencv2\videoio.hpp>
#include <opencv2\imgcodecs.hpp>
Несколько советов, как установить ffmpeg и образец в C ++ на Linux Debian. Здесь Код и советы и хитрости
Других решений пока нет …