Recherche avancée

Médias (33)

Mot : - Tags -/creative commons

Autres articles (96)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette 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.

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le 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 (...)

  • Problèmes fréquents

    10 mars 2010, par

    PHP et safe_mode activé
    Une des principales sources de problèmes relève de la configuration de PHP et notamment de l’activation du safe_mode
    La solution consiterait à soit désactiver le safe_mode soit placer le script dans un répertoire accessible par apache pour le site

Sur d’autres sites (9640)

  • cap.isOpened() : returns false in CentOS for Python 3 and OpenCV 3.1.0

    29 octobre 2017, par Mona Jalal

    So cap from opencv 3 doesn’t work in CentOS. I had no problem in OSX or Windows 7 which I tried initially.
    Here is the example code :

    import cv2
    cap = cv2.VideoCapture('/home/grad3/jalal/PycharmProjects/hw4_cs58‌​5/Concession_LAN_8‌​‌​00‌​k.mp4',cv2.CAP_FFMPEG)

    if not cap.isOpened():
       print('not opened')

    while True:
       ret,frame = cap.read()

       if ret == False:
           print('frame empty')
           break
       cv2.imshow('frame', frame)
       if cv2.waitKey(1) == ord('q'):
           break

    And I get :

    /usr/local/anaconda3/bin/python /home/grad3/jalal/PycharmProjects/hw4_cs585/test.py
    not opened
    frame empty

    Process finished with exit code 0

    I can open the video using ffplay vid_name and also here is the result of https://pastebin.com/YGk2DDCi here https://pastebin.com/HSyHSsEZ (ffmpeg codecs). How should I fix this ?

    I have opencv 3.1.0 and here’s some sys info.

    $ uname -a
    Linux goku.bu.edu 3.10.0-693.5.2.el7.x86_64 #1 SMP Fri Oct 20 20:32:50 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

    and

    $ lsb_release -a
    LSB Version:    :core-4.1-amd64:core-4.1-noarch
    Distributor ID: CentOS
    Description:    CentOS Linux release 7.4.1708 (Core)
    Release:    7.4.1708
    Codename:   Core

    cv2. getBuildInformation()
    General configuration for OpenCV 3.1.0 =====================================
     Version control:               unknown

     Platform:
       Host:                        Linux 4.8.0-46-generic x86_64
       CMake:                       3.6.3
       CMake generator:             Unix Makefiles
       CMake build tool:            /usr/bin/gmake
       Configuration:               Release

     C/C++:
       Built as dynamic libs?:      YES
       C++ Compiler:                /opt/rh/devtoolset-2/root/usr/bin/c++  (ver 4.8.2)
       C++ flags (Release):         -I/cs/software/anaconda3/include    -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -mno-avx -msse3 -mno-ssse3 -mno-sse4.1 -mno-sse4.2 -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -fopenmp -O3 -DNDEBUG  -DNDEBUG
       C++ flags (Debug):           -I/cs/software/anaconda3/include    -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -mno-avx -msse3 -mno-ssse3 -mno-sse4.1 -mno-sse4.2 -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -fopenmp -g  -O0 -DDEBUG -D_DEBUG
       C Compiler:                  /opt/rh/devtoolset-2/root/usr/bin/cc
       C flags (Release):           -I/cs/software/anaconda3/include    -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -mno-avx -msse3 -mno-ssse3 -mno-sse4.1 -mno-sse4.2 -ffunction-sections -fvisibility=hidden -fopenmp -O3 -DNDEBUG  -DNDEBUG
       C flags (Debug):             -I/cs/software/anaconda3/include    -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -msse -msse2 -mno-avx -msse3 -mno-ssse3 -mno-sse4.1 -mno-sse4.2 -ffunction-sections -fvisibility=hidden -fopenmp -g  -O0 -DDEBUG -D_DEBUG
       Linker flags (Release):
       Linker flags (Debug):
       Precompiled headers:         YES
       Extra dependencies:          /cs/software/anaconda3/lib/libjpeg.so /cs/software/anaconda3/lib/libpng.so /cs/software/anaconda3/lib/libtiff.so /cs/software/anaconda3/lib/libhdf5.so /usr/lib64/librt.so /usr/lib64/libpthread.so /cs/software/anaconda3/lib/libz.so /usr/lib64/libdl.so /usr/lib64/libm.so dl m pthread rt
       3rdparty dependencies:       libwebp libjasper IlmImf libprotobuf

     OpenCV modules:
       To be built:                 core flann hdf imgproc ml photo reg surface_matching video dnn fuzzy imgcodecs shape videoio highgui objdetect plot superres xobjdetect xphoto bgsegm bioinspired dpm face features2d line_descriptor saliency text calib3d ccalib datasets rgbd stereo structured_light tracking videostab xfeatures2d ximgproc aruco optflow stitching python3
       Disabled:                    world contrib_world
       Disabled by dependency:      -
       Unavailable:                 cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev java python2 ts viz cvv matlab sfm

     GUI:
       QT:                          NO
       GTK+:                        NO
       GThread :                    NO
       GtkGlExt:                    NO
       OpenGL support:              NO
       VTK support:                 NO

     Media I/O:
       ZLib:                        /cs/software/anaconda3/lib/libz.so (ver 1.2.8)
       JPEG:                        /cs/software/anaconda3/lib/libjpeg.so (ver 80)
       WEBP:                        build (ver 0.3.1)
       PNG:                         /cs/software/anaconda3/lib/libpng.so (ver 1.6.27)
       TIFF:                        /cs/software/anaconda3/lib/libtiff.so (ver 42 - 4.0.6)
       JPEG 2000:                   build (ver 1.900.1)
       OpenEXR:                     build (ver 1.7.1)
       GDAL:                        NO

     Video I/O:
       DC1394 1.x:                  NO
       DC1394 2.x:                  NO
       FFMPEG:                      NO
         codec:                     NO
         format:                    NO
         util:                      NO
         swscale:                   NO
         resample:                  NO
         gentoo-style:              NO
       GStreamer:                   NO
       OpenNI:                      NO
       OpenNI PrimeSensor Modules:  NO
       OpenNI2:                     NO
       PvAPI:                       NO
       GigEVisionSDK:               NO
       UniCap:                      NO
       UniCap ucil:                 NO
       V4L/V4L2:                    YES/YES
       XIMEA:                       NO
       Xine:                        NO
       gPhoto2:                     NO

     Parallel framework:            OpenMP

     Other third-party libraries:
       Use IPP:                     9.0.1 [9.0.1]
            at:                     /opt/conda/conda-bld/opencv_1491943704081/work/opencv-3.1.0/3rdparty/ippicv/unpack/ippicv_lnx
       Use IPP Async:               NO
       Use VA:                      NO
       Use Intel VA-API/OpenCL:     NO
       Use Eigen:                   YES (ver 3.2.8)
       Use Cuda:                    NO
       Use OpenCL:                  NO
       Use custom HAL:              NO

     Python 2:
       Interpreter:                 (ver 3.5.3)

     Python 3:
       Interpreter:                 /cs/software/anaconda3/bin/python (ver 3.5.3)
       Libraries:                   /cs/software/anaconda3/lib/libpython3.5m.so (ver 3.5.3)
       numpy:                       /cs/software/anaconda3/lib/python3.5/site-packages/numpy/core/include (ver 1.12.1)
       packages path:               /cs/software/anaconda3/lib/python3.5/site-packages

     Python (for build):            

     Java:
       ant:                         NO
       JNI:                         NO
       Java wrappers:               NO
       Java tests:                  NO

     Matlab:                        NO

     Tests and samples:
       Tests:                       NO
       Performance tests:           NO
       C/C++ Examples:              NO

     Install path:                  /cs/software/anaconda3

     cvconfig.h is in:              /opt/conda/conda-bld/opencv_1491943704081/work/opencv-3.1.0/build
    -----------------------------------------------------------------

    UPDATE : tried .avi and .flv formats and the same problem !

  • Rendering YUV420P ffmpeg decoded images on QT with OpenGL, only see black screen

    17 février 2019, par Lucas Zanella

    I’ve found this QT OpenGL Widget which should render a 420PYUV image on screen. I’m feeding a ffmpeg decoded buffer into its paintGL() function but I see nothing. Neither noises or correct images, only a black screen. I’m trying to understand why.

    I want to exclude the possibilities of other things being wrong, but I need to be sure first that my code will produce anything. I std::couted some bytes from the ffmpeg just to see if they were arriving and they were. So I should see at least some noise.

    Can you see anything wrong with my code that wouldn’t make it able to render images on screen ?

    This is the widget that should output the image :

    #include "XVideoWidget.h"
    #include <qdebug>
    #include <qtimer>
    #include <iostream>
    //自动加双引号
    #define GET_STR(x) #x
    #define A_VER 3
    #define T_VER 4

    //顶点shader
    const char *vString = GET_STR(
       attribute vec4 vertexIn;
       attribute vec2 textureIn;
       varying vec2 textureOut;
       void main(void)
       {
           gl_Position = vertexIn;
           textureOut = textureIn;
       }
    );


    //片元shader
    const char *tString = GET_STR(
       varying vec2 textureOut;
       uniform sampler2D tex_y;
       uniform sampler2D tex_u;
       uniform sampler2D tex_v;
       void main(void)
       {
           vec3 yuv;
           vec3 rgb;
           yuv.x = texture2D(tex_y, textureOut).r;
           yuv.y = texture2D(tex_u, textureOut).r - 0.5;
           yuv.z = texture2D(tex_v, textureOut).r - 0.5;
           rgb = mat3(1.0, 1.0, 1.0,
               0.0, -0.39465, 2.03211,
               1.13983, -0.58060, 0.0) * yuv;
           gl_FragColor = vec4(rgb, 1.0);
       }

    );



    //准备yuv数据
    // ffmpeg -i v1080.mp4 -t 10 -s 240x128 -pix_fmt yuv420p  out240x128.yuv
    XVideoWidget::XVideoWidget(QWidget * parent)
    {
      // setWindowFlags (Qt::WindowFullscreenButtonHint);
     //  showFullScreen();

    }

    XVideoWidget::~XVideoWidget()
    {
    }

    //初始化opengl
    void XVideoWidget::initializeGL()
    {
       //qDebug() &lt;&lt; "initializeGL";
       std::cout &lt;&lt; "initializing gl" &lt;&lt; std::endl;
       //初始化opengl (QOpenGLFunctions继承)函数
       initializeOpenGLFunctions();

       this->m_F  = QOpenGLContext::currentContext()->functions();

       //program加载shader(顶点和片元)脚本
       //片元(像素)
       std::cout &lt;&lt; program.addShaderFromSourceCode(QOpenGLShader::Fragment, tString) &lt;&lt; std::endl;
       //顶点shader
       std::cout &lt;&lt; program.addShaderFromSourceCode(QOpenGLShader::Vertex, vString) &lt;&lt; std::endl;

       //设置顶点坐标的变量
       program.bindAttributeLocation("vertexIn",A_VER);

       //设置材质坐标
       program.bindAttributeLocation("textureIn",T_VER);

       //编译shader
       std::cout &lt;&lt; "program.link() = " &lt;&lt; program.link() &lt;&lt; std::endl;

       std::cout &lt;&lt; "program.bind() = " &lt;&lt; program.bind() &lt;&lt; std::endl;

       //传递顶点和材质坐标
       //顶点
       static const GLfloat ver[] = {
           -1.0f,-1.0f,
           1.0f,-1.0f,
           -1.0f, 1.0f,
           1.0f,1.0f
       };

       //材质
       static const GLfloat tex[] = {
           0.0f, 1.0f,
           1.0f, 1.0f,
           0.0f, 0.0f,
           1.0f, 0.0f
       };

       //顶点
       glVertexAttribPointer(A_VER, 2, GL_FLOAT, 0, 0, ver);
       glEnableVertexAttribArray(A_VER);

       //材质
       glVertexAttribPointer(T_VER, 2, GL_FLOAT, 0, 0, tex);
       glEnableVertexAttribArray(T_VER);

       //glUseProgram(&amp;program);
       //从shader获取材质
       unis[0] = program.uniformLocation("tex_y");
       unis[1] = program.uniformLocation("tex_u");
       unis[2] = program.uniformLocation("tex_v");

       //创建材质
       glGenTextures(3, texs);

       //Y
       glBindTexture(GL_TEXTURE_2D, texs[0]);
       //放大过滤,线性插值   GL_NEAREST(效率高,但马赛克严重)
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
       //创建材质显卡空间
       glTexImage2D(GL_TEXTURE_2D, 0, GL_RED, width, height, 0, GL_RED, GL_UNSIGNED_BYTE, 0);

       //U
       glBindTexture(GL_TEXTURE_2D, texs[1]);
       //放大过滤,线性插值
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
       //创建材质显卡空间
       glTexImage2D(GL_TEXTURE_2D, 0, GL_RED, width/2, height / 2, 0, GL_RED, GL_UNSIGNED_BYTE, 0);

       //V
       glBindTexture(GL_TEXTURE_2D, texs[2]);
       //放大过滤,线性插值
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
       //创建材质显卡空间
       glTexImage2D(GL_TEXTURE_2D, 0, GL_RED, width / 2, height / 2, 0, GL_RED, GL_UNSIGNED_BYTE, 0);

       ///分配材质内存空间
       datas[0] = new unsigned char[width*height];     //Y
       datas[1] = new unsigned char[width*height/4];   //U
       datas[2] = new unsigned char[width*height/4];   //V
    }

    //刷新显示
    void XVideoWidget::paintGL(unsigned char**data)
    //void QFFmpegGLWidget::updateData(unsigned char**data)
    {
       std::cout &lt;&lt; "painting!" &lt;&lt; std::endl;
       memcpy(datas[0], data[0], width*height);
       memcpy(datas[1], data[1], width*height/4);
       memcpy(datas[2], data[2], width*height/4);

       glActiveTexture(GL_TEXTURE0);
       glBindTexture(GL_TEXTURE_2D, texs[0]); //0层绑定到Y材质
       //修改材质内容(复制内存内容)
       glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, GL_RED, GL_UNSIGNED_BYTE, datas[0]);
       //与shader uni遍历关联
       glUniform1i(unis[0], 0);


       glActiveTexture(GL_TEXTURE0+1);
       glBindTexture(GL_TEXTURE_2D, texs[1]); //1层绑定到U材质
                                              //修改材质内容(复制内存内容)
       glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width/2, height / 2, GL_RED, GL_UNSIGNED_BYTE, datas[1]);
       //与shader uni遍历关联
       glUniform1i(unis[1],1);


       glActiveTexture(GL_TEXTURE0+2);
       glBindTexture(GL_TEXTURE_2D, texs[2]); //2层绑定到V材质
                                              //修改材质内容(复制内存内容)
       glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width / 2, height / 2, GL_RED, GL_UNSIGNED_BYTE, datas[2]);
       //与shader uni遍历关联
       glUniform1i(unis[2], 2);

       glDrawArrays(GL_TRIANGLE_STRIP,0,4);
       qDebug() &lt;&lt; "paintGL";
    }


    // 窗口尺寸变化
    void XVideoWidget::resizeGL(int width, int height)
    {
       m_F->glViewport(0, 0, width, height);

       qDebug() &lt;&lt; "resizeGL "&lt;code></iostream></qtimer></qdebug>

    Here’s a bit of code from my MainWindow :

    MainWindow::MainWindow(QWidget *parent):
       QMainWindow(parent)
       {
           FfmpegDecoder* ffmpegDecoder = new FfmpegDecoder();
           if(!ffmpegDecoder->Init()) {
               std::cout &lt;&lt; "problem with ffmpeg decoder init"  &lt;&lt; std::endl;
           } else {
               std::cout &lt;&lt; "fmmpeg decoder initiated"  &lt;&lt; std::endl;
           }
           XVideoWidget * xVideoWidget = new XVideoWidget(parent);
           ffmpegDecoder->setOpenGLWidget(xVideoWidget);

           mediaStream = new MediaStream(uri, ffmpegDecoder, videoConsumer);//= new MediaStream(uri, ffmpegDecoder, videoConsumer);
           //...
       }
       void MainWindow::run()
       {
           mediaStream->receiveFrame();
       }

    My main.cpp makes sure my window run() method runs in the background.

       MainWindow w;
       w.setFixedSize(1280,720);
       w.show();
       boost::thread mediaThread(&amp;MainWindow::run, &amp;w);
       std::cout &lt;&lt; "mediaThread running"  &lt;&lt; std::endl;

    If someone wants to view the entire code, please feel free to visit the commit I just did : https://github.com/lucaszanella/orwell/tree/bbd74e42bd42df685bacc5d51cacbee3a178689f

  • Video Overlay not returning to black once video stopped

    24 septembre 2020, par Matt Nelson

    I am combining multiple videos from a webrtc call and aligning the "user-terminal" videos to the left, and the "user-visitor" videos to the right. As the visitor feed can start and strop, they have multiple videos so I'm offsetting them by the timestamp.

    &#xA;

    This is working, however crazy it looks !

    &#xA;

    The one last issue I have is that when the first visitor video stop on the right, it shows the last frame of that video until the next video starts on the left. Can I have it return o the black background ?

    &#xA;

    Here is the command passed to ffmpeg :

    &#xA;

    ffmpeg -y &#xA;-i /recordings/process/5f6c9c3/videoroom-5f6c9c3-user-terminal-1600953586531366-audio.mjr.opus &#xA;-i /recordings/process/5f6c9c3/videoroom-5f6c9c3-user-visitor-1600953592694430-audio.mjr.opus &#xA;-i /recordings/process/5f6c9c3/videoroom-5f6c9c3-user-visitor-1600953609873223-audio.mjr.opus &#xA;-i /recordings/process/5f6c9c3/videoroom-5f6c9c3-user-visitor-1600953628668227-audio.mjr.opus &#xA;-i /recordings/process/5f6c9c3/videoroom-5f6c9c3-user-visitor-1600953663905342-audio.mjr.opus &#xA;-i /recordings/process/5f6c9c3/videoroom-5f6c9c3-user-MasterTerminal-52350116-1600953681107272-audio.mjr.opus &#xA;-i /recordings/process/5f6c9c3/videoroom-5f6c9c3-user-visitor-1600953697832165-audio.mjr.opus &#xA;-i /recordings/process/5f6c9c3/videoroom-5f6c9c3-user-MasterTerminal-52350116-1600953723320364-audio.mjr.opus &#xA;-i /recordings/process/5f6c9c3/videoroom-5f6c9c3-user-visitor-1600953725307043-audio.mjr.opus &#xA;-filter_complex [1:a]adelay=6163|6163[1adelay];[2:a]adelay=23341|23341[2adelay];[3:a]adelay=42136|42136[3adelay];[4:a]adelay=77373|77373[4adelay];[5:a]adelay=94575|94575[5adelay];[6:a]adelay=111300|111300[6adelay];[7:a]adelay=136788|136788[7adelay];[8:a]adelay=138775|138775[8adelay];[0:a][1adelay][2adelay][3adelay][4adelay][5adelay][6adelay][7adelay][8adelay]amix=inputs=9:duration=longest[a] &#xA;-map [a] -ac -2 /recordings/process/5f6c9c3/5f6c9c3.mp3&#xA;

    &#xA;