
Recherche avancée
Autres articles (47)
-
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 à (...) -
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page. -
La file d’attente de SPIPmotion
28 novembre 2010, parUne file d’attente stockée dans la base de donnée
Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...)
Sur d’autres sites (6876)
-
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 ?


-
FFmpeg av_dump_format showing incorrect output, but ffprobe displays correct metadata
29 janvier, par グルグルI use ffmpeg 7.1 source build on windows and compilation configuration as follow :


configuration:
 --toolchain=msvc
 --arch=x86_64
 --enable-x86asm
 --enable-asm
 --enable-shared
 --enable-w32threads
 --prefix=/D/build



When I use
av_dump_format
to print metadata of test.mp3, it display the incorrect information.

extern "C"
{
#include <libavformat></libavformat>avformat.h>
}

int main()
{ 
 av_log_set_level(AV_LOG_DEBUG);

 auto url = "D:/music/test.mp3";

 AVFormatContext* fmt;
 auto ret = avformat_open_input(&fmt, url, nullptr, nullptr);
 if (ret < 0)
 {
 av_log(nullptr, AV_LOG_ERROR, "Cannot open %s format : %s", url, av_err2str(ret));
 exit(EXIT_FAILURE);
 }

 av_dump_format(fmt, 0, url, 0);
}



output


[AVFormatContext @ 000001768E65BC40] Opening 'D:/music/test.mp3' for reading
[file @ 000001768E65C180] Setting default whitelist 'file,crypto,data'
[mp3 @ 000001768E65BC40] Format mp3 probed with size=4096 and score=51
id3v2 ver:4 flags:00 len:35
[mp3 @ 000001768E65BC40] pad 576 576
[mp3 @ 000001768E65BC40] Skipping 0 bytes of junk at 462.
Input #0, mp3, from 'D:/music/test.mp3':
 Metadata:
 encoder : Lavf58.76.100
 Duration: N/A, bitrate: N/A
 Stream #0:0, 0, 1/14112000: Audio: mp3, 0 channels
 Metadata:
 encoder : Lavc58.13



You can see the Stream info is useless.


But I use ffprobe which is built with same configuration to print metadata of test.mp3.


It's display normal.


ffprobe version 7.0.1 Copyright (c) 2007-2024 the FFmpeg developers
 built with Microsoft (R) C/C++ Optimizing Compiler Version 19.41.34123 for x64
 configuration: --toolchain=msvc --arch=x86_64 --enable-x86asm --enable-asm --enable-shared --enable-w32threads --prefix=/D/build
 WARNING: library configuration mismatch
 avutil configuration: --toolchain=msvc --arch=x86_64 --enable-x86asm --enable-asm --enable-shared --enable-w32threads --disable-programs --disable-doc --disable-static --prefix=/D/build
 avcodec configuration: --toolchain=msvc --arch=x86_64 --enable-x86asm --enable-asm --enable-shared --enable-w32threads --disable-programs --disable-doc --disable-static --prefix=/D/build
 avformat configuration: --toolchain=msvc --arch=x86_64 --enable-x86asm --enable-asm --enable-shared --enable-w32threads --disable-programs --disable-doc --disable-static --prefix=/D/build
 avdevice configuration: --toolchain=msvc --arch=x86_64 --enable-x86asm --enable-asm --enable-shared --enable-w32threads --disable-programs --disable-doc --disable-static --prefix=/D/build
 avfilter configuration: --toolchain=msvc --arch=x86_64 --enable-x86asm --enable-asm --enable-shared --enable-w32threads --disable-programs --disable-doc --disable-static --prefix=/D/build
 swscale configuration: --toolchain=msvc --arch=x86_64 --enable-x86asm --enable-asm --enable-shared --enable-w32threads --disable-programs --disable-doc --disable-static --prefix=/D/build
 swresample configuration: --toolchain=msvc --arch=x86_64 --enable-x86asm --enable-asm --enable-shared --enable-w32threads --disable-programs --disable-doc --disable-static --prefix=/D/build
 libavutil 59. 8.100 / 59. 39.100
 libavcodec 61. 3.100 / 61. 19.100
 libavformat 61. 1.100 / 61. 7.100
 libavdevice 61. 1.100 / 61. 3.100
 libavfilter 10. 1.100 / 10. 4.100
 libswscale 8. 1.100 / 8. 3.100
 libswresample 5. 1.100 / 5. 3.100
Input #0, mp3, from 'D:\music\test.mp3':
 Metadata:
 encoder : Lavf58.76.100
 Duration: 00:05:00.12, start: 0.025057, bitrate: 128 kb/s
 Stream #0:0: Audio: mp3 (mp3float), 44100 Hz, stereo, fltp, 128 kb/s
 Metadata:
 encoder : Lavc58.13



Why is
av_dump_format
not correctly showing stream information ? How can I fix it ?

-
avformat/riff : map Y416 fourcc to RAWVIDEO decoder
23 octobre 2024, par James Almeravformat/riff : map Y416 fourcc to RAWVIDEO decoder
As defined in https://learn.microsoft.com/en-us/windows/win32/medfound/10-bit-and-16-bit-yuv-video-formats#422-formats
Signed-off-by : James Almer <jamrial@gmail.com>
- [DH] libavcodec/raw.c
- [DH] libavformat/riff.c
- [DH] tests/ref/fate/filter-pixdesc-xv48le
- [DH] tests/ref/fate/filter-pixfmts-copy
- [DH] tests/ref/fate/filter-pixfmts-crop
- [DH] tests/ref/fate/filter-pixfmts-field
- [DH] tests/ref/fate/filter-pixfmts-fieldorder
- [DH] tests/ref/fate/filter-pixfmts-hflip
- [DH] tests/ref/fate/filter-pixfmts-il
- [DH] tests/ref/fate/filter-pixfmts-null
- [DH] tests/ref/fate/filter-pixfmts-scale
- [DH] tests/ref/fate/filter-pixfmts-transpose
- [DH] tests/ref/fate/filter-pixfmts-vflip