
Recherche avancée
Autres articles (87)
-
Mise à jour de la version 0.1 vers 0.2
24 juin 2013, parExplications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...) -
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Ecrire une actualité
21 juin 2013, parPrésentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
Vous pouvez personnaliser le formulaire de création d’une actualité.
Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)
Sur d’autres sites (12048)
-
OpenCV 4.5.2 takes a long time (>100ms) to retrieve a single frame from a webcam, C++ on Windows 10
9 juin 2021, par Mustard TigerI've been having a tough time getting my webcam working quickly with opencv. Frames take a very long time to read, (a recorded average of 124ms across 500 frames) I've tried on three different computers (running Windows 10) with a logitech C922 webcam. The most recent machine I tested on has a Ryzen 9 3950X, with 32gbs of ram ; no lack of power.


Here is the code :


cv::VideoCapture cap = cv::VideoCapture(m_cameraNum);

// Check if camera opened successfully
if (!cap.isOpened())
{
 m_logger->critical("Error opening video stream or file\n\r");
 return -1;
}

bool result = true;
result &= cap.set(cv::CAP_PROP_FRAME_WIDTH, 1280);
result &= cap.set(cv::CAP_PROP_FRAME_HEIGHT, 720);

bool ready = false;
std::vector<string> timeLog;
timeLog.reserve(50000);
int i = 0;

while (i < 500)
{
 auto start = std::chrono::system_clock::now();
 
 cv::Mat img;
 ready = cap.read(img);

 // If the frame is empty, break immediately
 if (!ready)
 {
 timeLog.push_back("continue");
 continue;
 }

 i++;
 auto end = std::chrono::system_clock::now();
 timeLog.push_back(std::to_string(std::chrono::duration_cast(end - start).count()));
}

for (auto& entry : timeLog)
 m_logger->info(entry);

cap.release();
return 0;
</string>


Notice that I write the elapsed time to a log file at the end of execution. The average time is 124ms for debug and release, and not one instance of "continue" after half a dozen runs.


It doesn't matter if I use USB 2 or USB 3 ports (the camera is USB2) or if I run a debug build or a release build, the log file will show anywhere from 110ms to 130ms of time for each frame. The camera works fine in other app, OBS can get a smooth 1080@30fps or 720@60fps.


Stepping through the debugger and doing a lot of Googling, I've learned the following about my system :


- 

- The backend chosen by default is DSHOW. GStreamer and FFMPEG are also available.
- DSHOW uses FFMPEG somehow (it needs the FFMPEG dll) but I cannot use FFMPEG directly through opencv. Attempting to use cv::VideoCapture(m_cameraNum, cv::CAP_FFMPEG) always fails. It seems like Opencv's interface to FFMPEG is only capable of opening video files.
- Microsoft really screwed up camera devices in Windows a few years back, not sure if this is related to my problem.








Here's a short list of the fixes I have tried, most taken from older SO posts :


- 

- result &= cap.set(cv::CAP_PROP_FRAME_COUNT, 30) ; // Returns false, does nothing
- result &= cap.set(cv::CAP_PROP_CONVERT_RGB, 0) ; // Returns true, does nothing
- result &= cap.set(cv::CAP_PROP_MODE, cv::VideoWriter::fourcc('M', 'J', 'P', 'G')) ; // Returns false, does nothing
- Set registry key from http://alax.info/blog/1693 that should disable the new Windows camera server.
- Updated from 4.5.0 to 4.5.2, no change.
- Asked device manager to find a newer driver, no newer driver found.














I'm out of ideas. Any help ?


-
sh : /usr/bin/ffmpeg : not found
22 janvier 2016, par RioI’m trying to execute ffmpeg from PHP using shell_exec or exec but it fails. Why can this be ? The command
/usr/bin/ffmpeg
works from the terminal, so I tried<?php
$cmd = "/usr/bin/ffmpeg";
exec($cmd." 2>&1", $out, $ret);
if ($ret){
echo "There was a problem!\n";
print_r($out);
}else{
echo "Everything went better than expected!\n";
}
?>and I keep on getting
There was a problem! Array ( [0] => sh: /usr/bin/ffmpeg: not found )
Any help would be greatly appreciated.
Permission on the executable are
-rwxr-xr-x 1 root root 106552 Jun 12 09:53 ffmpeg
Running
which /usr/local/bin/ffmpeg
into $cmd returns an empty Array. -
python3 openCV VideoCapture only black image (Raspbian Stretch)
21 juin 2018, par PrimuSI have a little python function that analyzes a video, chunks it into one image per second and gives me the most dominant color for that image. (Code can be found here : https://github.com/primus852/python-movie-barcode)
This works great on my Windows testing environment. However, on my Rasbian Stretch Raspberry Pi Setup it only produces a black image, as the source seems to be black.
I compiled OpenCV (3.4.1) myself with this great article : https://www.pyimagesearch.com/2017/09/04/raspbian-stretch-install-opencv-3-python-on-your-raspberry-pi/, and it worked perfectly fine. I am using
python3
and avirtualenv
.I tried adding the ffmpeg package :
apt install ffmpeg
, to no avail.2 ideas
- I compiled the openCV source without support for mkv/mp4/similar ? If so, how would I check that and can I just "re-compile" the whole package ?
- I am missing codecs, where would I be able to check that ?
The crucial code (I think) is this :
cap = cv2.VideoCapture(full_path)
are there other options that do not break the majority of my code ? I read aboutskvideo.io
fromscikit-video
but that does not seem to work with my code...I am new to python, any hint is appreciated
// EDIT, I think it is not a duplicate because I pass the I get no error that the capture cannot be opened and :
OpenCV FFMPEG support :
python -c "import cv2; print(cv2.getBuildInformation())" | grep -i ffmpeg
- returns :
FFMPEG: YES
- returns :
FFMPEG Codec :
ffmpeg -codecs | grep -i avc
(file is using AVC)- returns :
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_mmal h264_vdpau ) (encoders: libx264 libx264rgb h264_omx h264_vaapi )
- returns :
File PATH
It exists and the path is correct...
Any other ideas ? Could it possibly the
virtualenv
?//EDIT2
Tried with an AVI file
works...