
Recherche avancée
Médias (1)
-
The Slip - Artworks
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Texte
Autres articles (46)
-
List of compatible distributions
26 avril 2011, parThe table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...) -
Demande de création d’un canal
12 mars 2010, parEn fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...) -
ANNEXE : Les plugins utilisés spécifiquement pour la ferme
5 mars 2010, parLe site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)
Sur d’autres sites (6590)
-
OpenCV and Network Cameras -or- How to spy on my neighbors ?
12 mai 2014, par Alexander
A bit of context ; this program was built originally to work with USB cameras - but because of the setup between where the cameras needs to be and where the computer is it makes more sense to switch to cameras run over a network. Now I’m trying to convert the program to accomplish this, but my efforts thus far have met with poor results. I’ve also asked this same question over on the OpenCV forums. Help me spy on my neighbors ! (Totally with their permission, of course !) :D
I’m using :
- OpenCV v2.4.6.0
- C++
- D-Link Cloud Camera 7100 (Installer is DCS-7010L, according to the instructions.)
I am trying to access the DLink camera’s video feed through OpenCV.
I can access the camera through it’s IP address with a browser without any issues. Unfourtunately ; my program is less cooperative. When attempting to access the camera the program gives the OpenCV-generated error :
warning : Error opening file (../../modules/highgui/src/cap_ffmpeg_impl.hpp:529)
This error occurs with just about everything I try that doesn’t somehow generate more problems.
For reference - the code in OpenCV’s cap_ffmpeg_impl.hpp around line 529 is as follows :
522 bool CvCapture_FFMPEG::open( const char* _filename )
523 {
524 unsigned i;
525 bool valid = false;
526
527 close();
528
529 #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(52, 111, 0)
530 int err = avformat_open_input(&ic, _filename, NULL, NULL);
531 #else
532 int err = av_open_input_file(&ic, _filename, NULL, 0, NULL);
533 #endif
...
616 }...for which I have no idea what I’m looking at. It seems to be looking for the ffmpeg version - but I’ve already installed the latest ffmpeg on that computer, so that shouldn’t be the issue.
This is the edited down version I tried to use as per Sebastian Schmitz’s recommendation :
1 #include <fstream> // File input/output
2 #include <iostream> // cout / cin / etc
3 #include // Windows API stuff
4 #include // More input/output stuff
5 #include <string> // "Strings" of characters strung together to form words and stuff
6 #include <cstring> // "Strings" of characters strung together to form words and stuff
7 #include <streambuf> // For buffering load files
8 #include <array> // Functions for working with arrays
9 #include <opencv2></opencv2>imgproc/imgproc.hpp> // Image Processor
10 #include <opencv2></opencv2>core/core.hpp> // Basic OpenCV structures (cv::Mat, Scalar)
11 #include <opencv2></opencv2>highgui/highgui.hpp> // OpenCV window I/O
12 #include "opencv2/calib3d/calib3d.hpp"
13 #include "opencv2/features2d/features2d.hpp"
14 #include "opencv2/opencv.hpp"
15 #include "resource.h" // Included for linking the .rc file
16 #include // For sleep()
17 #include <chrono> // To get start-time of program.
18 #include <algorithm> // For looking at whole sets.
19
20 #ifdef __BORLANDC__
21 #pragma argsused
22 #endif
23
24 using namespace std; // Standard operations. Needed for most basic functions.
25 using namespace std::chrono; // Chrono operations. Needed getting starting time of program.
26 using namespace cv; // OpenCV operations. Needed for most OpenCV functions.
27
28 string videoFeedAddress = "";
29 VideoCapture videoFeedIP = NULL;
30 Mat clickPointStorage; //Artifact from original program.
31
32 void displayCameraViewTest()
33 {
34 VideoCapture cv_cap_IP;
35 Mat color_img_IP;
36 int capture;
37 IplImage* color_img;
38 cv_cap_IP.open(videoFeedAddress);
39 Sleep(100);
40 if(!cv_cap_IP.isOpened())
41 {
42 cout << "Video Error: Video input will not work.\n";
43 cvDestroyWindow("Camera View");
44 return;
45 }
46 clickPointStorage.create(color_img_IP.rows, color_img_IP.cols, CV_8UC3);
47 clickPointStorage.setTo(Scalar(0, 0, 0));
48 cvNamedWindow("Camera View", 0); // create window
49 IplImage* IplClickPointStorage = new IplImage(clickPointStorage);
50 IplImage* Ipl_IP_Img;
51
52 for(;;)
53 {
54 cv_cap_IP.read(color_img_IP);
55 IplClickPointStorage = new IplImage(clickPointStorage);
56 Ipl_IP_Img = new IplImage(color_img_IP);
57 cvAdd(Ipl_IP_Img, IplClickPointStorage, color_img);
58 cvShowImage("Camera View", color_img); // show frame
59 capture = cvWaitKey(10); // wait 10 ms or for key stroke
60 if(capture == 27 || capture == 13 || capture == 32){break;} // if ESC, Return, or space; close window.
61 }
62 cv_cap_IP.release();
63 delete Ipl_IP_Img;
64 delete IplClickPointStorage;
65 cvDestroyWindow("Camera View");
66 return;
67 }
68
69 int main()
70 {
71 while(1)
72 {
73 cout << "Please Enter Video-Feed Address: ";
74 cin >> videoFeedAddress;
75 if(videoFeedAddress == "exit"){return 0;}
76 cout << "\nvideoFeedAddress: " << videoFeedAddress << endl;
77 displayCameraViewTest();
78 if(cvWaitKey(10) == 27){return 0;}
79 }
80 return 0;
81 }
</algorithm></chrono></array></streambuf></cstring></string></iostream></fstream>Using added ’cout’s I was able to narrow it down to line 38 : "cv_cap_IP.open(videoFeedAddress) ;"
No value I enter for the videoFeedAddress variable seems to get a different result. I found THIS site that lists a number of possible addresses to connect to it. Since there exists no 7100 anywhere in the list & considering that the install is labeled "DCS-7010L" I used the addresses found next to the DCS-7010L listings. When trying to access the camera most of them can be reached through the browser, confirming that they reach the camera - but they don’t seem to affect the outcome when I use them in the videoFeedAddress variable.
I’ve tried many of them both with and without username:password, the port number (554), and variations on ?.mjpg (the format) at the end.
I searched around and came across a number of different "possible" answers - but none of them seem to work for me. Some of them did give me the idea for including the above username:password, etc stuff, but it doesn’t seem to be making a difference. Of course, the number of possible combinations is certainly rather large- so I certainly have not tried all of them (more direction here would be appreciated). Here are some of the links I found :
- This is one of the first configurations my code was in. No dice.
- This one is talking about files - not cameras. It also mentions codecs - but I wouldn’t be able to watch it in a web browser if that were the problem, right ? (Correct me if I’m wrong here...)
- This one has the wrong error code/points to the wrong line of code !
- This one mentions compiling OpenCV with ffmpeg support - but I believe 2.4.6.0 already comes with that all set and ready ! Otherwise it’s not that different from what I’ve already tried.
- Now THIS one appears to be very similar to what I have, but the only proposed solution doesn’t really help as I had already located a list of connections. I do not believe this is a duplicate, because as per THIS meta discussion I had a lot more information and so didn’t feel comfortable taking over someone else’s question - especially if I end up needing to add even more information later.
Thank you for reading this far. I realize that I am asking a somewhat specific question - although I would appreciate any advice you can think of regarding OpenCV & network cameras or even related topics.
TLDR : Network Camera and OpenCV are not cooperating. I’m unsure if
it’s the address I’m using to direct the program to the camera or the
command I’m using - but no adjustment I make seems to improve the
result beyond what I’ve already done ! Now my neighbors will go unwatched ! -
OpenCV and Network Cameras
10 mai 2014, par Alexander
So as a bit of context ; this program was built originally to work with USB cameras - but a few things changed. Now I’m trying to convert it to work with networked cameras, but my presence here should make it quite apparent what my level of success has been so far.
I’m using :
- OpenCV v2.4.6.0
- C++
- D-Link Cloud Camera 7100 (Installer is DCS-7010L, according to the instructions.)
I am trying to access the DLink camera’s video feed through OpenCV.
I can access the camera through it’s IP address with a browser without any issues. Unfourtunately ; my program is less cooperative. When attempting to access the camera the program gives the OpenCV-generated error :
warning : Error opening file (../../modules/highgui/src/cap_ffmpeg_impl.hpp:529)
This error occurs with just about everything I try that doesn’t somehow generate more problems.
For reference - the code in OpenCV’s cap_ffmpeg_impl.hpp around line 529 is as follows :
522 bool CvCapture_FFMPEG::open( const char* _filename )
523 {
524 unsigned i;
525 bool valid = false;
526
527 close();
528
529 #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(52, 111, 0)
530 int err = avformat_open_input(&ic, _filename, NULL, NULL);
531 #else
532 int err = av_open_input_file(&ic, _filename, NULL, 0, NULL);
533 #endif
...
616 }...for which I have no idea what I’m looking at. It seems to be looking for the ffmpeg version - but I’ve already installed the latest ffmpeg on that computer, so that shouldn’t be the issue.
This is the edited down version I tried to use as per Sebastian Schmitz’s recommendation :
1 #include <fstream> // File input/output
2 #include <iostream> // cout / cin / etc
3 #include // Windows API stuff
4 #include // More input/output stuff
5 #include <string> // "Strings" of characters strung together to form words and stuff
6 #include <cstring> // "Strings" of characters strung together to form words and stuff
7 #include <streambuf> // For buffering load files
8 #include <array> // Functions for working with arrays
9 #include <opencv2></opencv2>imgproc/imgproc.hpp> // Image Processor
10 #include <opencv2></opencv2>core/core.hpp> // Basic OpenCV structures (cv::Mat, Scalar)
11 #include <opencv2></opencv2>highgui/highgui.hpp> // OpenCV window I/O
12 #include "opencv2/calib3d/calib3d.hpp"
13 #include "opencv2/features2d/features2d.hpp"
14 #include "opencv2/opencv.hpp"
15 #include "resource.h" // Included for linking the .rc file
16 #include // For sleep()
17 #include <chrono> // To get start-time of program.
18 #include <algorithm> // For looking at whole sets.
19
20 #ifdef __BORLANDC__
21 #pragma argsused
22 #endif
23
24 using namespace std; // Standard operations. Needed for most basic functions.
25 using namespace std::chrono; // Chrono operations. Needed getting starting time of program.
26 using namespace cv; // OpenCV operations. Needed for most OpenCV functions.
27
28 string videoFeedAddress = "";
29 VideoCapture videoFeedIP = NULL;
30 Mat clickPointStorage; //Artifact from original program.
31
32 void displayCameraViewTest()
33 {
34 VideoCapture cv_cap_IP;
35 Mat color_img_IP;
36 int capture;
37 IplImage* color_img;
38 cv_cap_IP.open(videoFeedAddress);
39 Sleep(100);
40 if(!cv_cap_IP.isOpened())
41 {
42 cout << "Video Error: Video input will not work.\n";
43 cvDestroyWindow("Camera View");
44 return;
45 }
46 clickPointStorage.create(color_img_IP.rows, color_img_IP.cols, CV_8UC3);
47 clickPointStorage.setTo(Scalar(0, 0, 0));
48 cvNamedWindow("Camera View", 0); // create window
49 IplImage* IplClickPointStorage = new IplImage(clickPointStorage);
50 IplImage* Ipl_IP_Img;
51
52 for(;;)
53 {
54 cv_cap_IP.read(color_img_IP);
55 IplClickPointStorage = new IplImage(clickPointStorage);
56 Ipl_IP_Img = new IplImage(color_img_IP);
57 cvAdd(Ipl_IP_Img, IplClickPointStorage, color_img);
58 cvShowImage("Camera View", color_img); // show frame
59 capture = cvWaitKey(10); // wait 10 ms or for key stroke
60 if(capture == 27 || capture == 13 || capture == 32){break;} // if ESC, Return, or space; close window.
61 }
62 cv_cap_IP.release();
63 delete Ipl_IP_Img;
64 delete IplClickPointStorage;
65 cvDestroyWindow("Camera View");
66 return;
67 }
68
69 int main()
70 {
71 while(1)
72 {
73 cout << "Please Enter Video-Feed Address: ";
74 cin >> videoFeedAddress;
75 if(videoFeedAddress == "exit"){return 0;}
76 cout << "\nvideoFeedAddress: " << videoFeedAddress << endl;
77 displayCameraViewTest();
78 if(cvWaitKey(10) == 27){return 0;}
79 }
80 return 0;
81 }
</algorithm></chrono></array></streambuf></cstring></string></iostream></fstream>Using added ’cout’s I was able to narrow it down to line 38 : "cv_cap_IP.open(videoFeedAddress) ;"
No value I enter for the videoFeedAddress variable seems to get a different result. I found THIS site that lists a number of possible addresses to connect to it. Since there exists no 7100 anywhere in the list & considering that the install is labeled "DCS-7010L" I used the addresses found next to the DCS-7010L listings. When trying to access the camera most of them can be reached through the browser, confirming that they reach the camera - but they don’t seem to affect the outcome when I use them in the videoFeedAddress variable.
I’ve tried many of them both with and without username:password, the port number (554), and variations on ?.mjpg (the format) at the end.
I searched around and came across a number of different "possible" answers - but none of them seem to work for me. Some of them did give me the idea for including the above username:password, etc stuff, but it doesn’t seem to be making a difference. Of course, the number of possible combinations is certainly rather large- so I certainly have not tried all of them (more direction here would be appreciated). Here are some of the links I found :
- This is one of the first configurations my code was in. No dice.
- This one is talking about files - not cameras. It also mentions codecs - but I wouldn’t be able to watch it in a web browser if that were the problem, right ? (Correct me if I’m wrong here...)
- This one has the wrong error code/points to the wrong line of code !
- This one mentions compiling OpenCV with ffmpeg support - but I believe 2.4.6.0 already comes with that all set and ready ! Otherwise it’s not that different from what I’ve already tried.
- Now THIS one appears to be very similar to what I have, but the only proposed solution doesn’t really help as I had already located a list of connections. I do not believe this is a duplicate, because as per THIS meta discussion I had a lot more information and so didn’t feel comfortable taking over someone else’s question - especially if I end up needing to add even more information later.
Thank you for reading this far. I realize that I am asking a somewhat specific question - although I would appreciate any advice you can think of regarding OpenCV & network cameras or even related topics.
TLDR : Network Camera and OpenCV are not cooperating. I’m unsure if
it’s the address I’m using to direct the program to the camera or the
command I’m using - but no adjustment I make seems to improve the
result beyond what I’ve already done ! -
Android ffmpeg runtime error
6 septembre 2013, par SyntaxicatedI'm new to Stackoverflow and although I've tried to find an answer to my question, I can't see anything that fits my circumstances. Apologies if it is a duplicate, however.
I'm trying my hand at some Android development and have hit a problem with ffmpeg.
I have built a basic app which should take a file on the sdcard, rotate it and save it as a new file to the same folder.
I'm using ffmpeg to do the transposing and cropping but so far I cannot get ffmpeg to execute.
I've used the 'guardianproject' android-ffmpeg library on github (here) to execute the ffmpeg commands but it doesn't actually do anything.
Here's my code :
package com.tw.videwell;
import java.io.File;
import org.ffmpeg.android.FfmpegController;
import org.ffmpeg.android.MediaDesc;
import org.ffmpeg.android.ShellUtils.ShellCallback;
import org.ffmpeg.android.filters.TransposeVideoFilter;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
Button b;
FfmpegController ff;
MediaDesc in;
MediaDesc out;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
run();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
private void run(){
b = (Button) findViewById(R.id.button1);
//Set click listener for shoot button
b.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
process();
}
});
}
@SuppressLint("SdCardPath")
private void process(){
try {
in = new MediaDesc();
out = new MediaDesc();
in.path="/sdcard/Video/test.mp4";
TransposeVideoFilter tvf= new TransposeVideoFilter(TransposeVideoFilter.NINETY_CLOCKWISE);
out.path="/sdcard/Video/out.mp4";
out.videoFilter=tvf.toString();
File fileTemp = null;
ff = new FfmpegController(getApplicationContext(), fileTemp);
//ff.processVideo(in, out, true, scb);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private ShellCallback scb = new ShellCallback(){
@Override
public void shellOut(String shellLine) {
// TODO Auto-generated method stub
System.out.println("Out");
}
@Override
public void processComplete(int exitValue) {
// TODO Auto-generated method stub
System.out.println("Complete");
}
};
}When I run the app on my device the log reports the following :
W/System.err(32114): android.content.res.Resources$NotFoundException: File res/raw/ffmpeg from drawable resource ID #0x7f040000
W/System.err(32114): at android.content.res.Resources.openRawResourceFd(Resources.java:982)
W/System.err(32114): at org.ffmpeg.android.FfmpegController.checkBinary(FfmpegController.java:49)
W/System.err(32114): at org.ffmpeg.android.FfmpegController.<init>(FfmpegController.java:41)
W/System.err(32114): at com.tw.videwell.MainActivity.process(MainActivity.java:61)
W/System.err(32114): at com.tw.videwell.MainActivity.access$0(MainActivity.java:52)
W/System.err(32114): at com.tw.videwell.MainActivity$2.onClick(MainActivity.java:44)
W/System.err(32114): at android.view.View.performClick(View.java:4211)
W/System.err(32114): at android.view.View$PerformClick.run(View.java:17362)
W/System.err(32114): at android.os.Handler.handleCallback(Handler.java:725)
W/System.err(32114): at android.os.Handler.dispatchMessage(Handler.java:92)
W/System.err(32114): at android.os.Looper.loop(Looper.java:137)
W/System.err(32114): at android.app.ActivityThread.main(ActivityThread.java:5227)
W/System.err(32114): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err(32114): at java.lang.reflect.Method.invoke(Method.java:511)
W/System.err(32114): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
W/System.err(32114): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
W/System.err(32114): at dalvik.system.NativeStart.main(Native Method)
W/System.err(32114): Caused by: java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed
W/System.err(32114): at android.content.res.AssetManager.openNonAssetFdNative(Native Method)
W/System.err(32114): at android.content.res.AssetManager.openNonAssetFd(AssetManager.java:450)
W/System.err(32114): at android.content.res.Resources.openRawResourceFd(Resources.java:979)
W/System.err(32114): ... 16 more
</init>From what I can deduce, the ffmpeg executable can't be found. It is stored in the /res/raw folder as I believe it should be and appears in the app folder on the device when I run it, but still can't find it.
I'm developing on a Mac in Eclipse 4.2.1 with the latest Android SDK and am running the app on a Sony Xperia T with Android 4.2.2.
I compiled the ffmpeg library using the installation method described on github, Android NDK 9 and the Mac XCode command line developer tools (make etc).
What am I doing wrong ? Do I need to store the FFmpeg library file somewhere else ? Is there a massive error in my, albeit basic, coding ?