Recherche avancée

Médias (2)

Mot : - Tags -/plugins

Autres articles (19)

  • D’autres logiciels intéressants

    12 avril 2011, par

    On ne revendique pas d’être les seuls à faire ce que l’on fait ... et on ne revendique surtout pas d’être les meilleurs non plus ... Ce que l’on fait, on essaie juste de le faire bien, et de mieux en mieux...
    La liste suivante correspond à des logiciels qui tendent peu ou prou à faire comme MediaSPIP ou que MediaSPIP tente peu ou prou à faire pareil, peu importe ...
    On ne les connais pas, on ne les a pas essayé, mais vous pouvez peut être y jeter un coup d’oeil.
    Videopress
    Site Internet : (...)

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

  • Création définitive du canal

    12 mars 2010, par

    Lorsque votre demande est validée, vous pouvez alors procéder à la création proprement dite du canal. Chaque canal est un site à part entière placé sous votre responsabilité. Les administrateurs de la plateforme n’y ont aucun accès.
    A la validation, vous recevez un email vous invitant donc à créer votre canal.
    Pour ce faire il vous suffit de vous rendre à son adresse, dans notre exemple "http://votre_sous_domaine.mediaspip.net".
    A ce moment là un mot de passe vous est demandé, il vous suffit d’y (...)

Sur d’autres sites (3600)

  • ffmpeg - color-grading video material AND display original source as picture-in-picture, using -filter_complex

    5 octobre 2019, par raven

    this is my first post on this forum, so please be gentle in case I accidentally do trip over any forum rules that I would not know of yet :).

    I would like to apply some color-grading to underwater GoPro footage. To quicker gauge the effect of my color settings (trial-and-error, as of yet), would like to see the original input video stream as a PIP (e.g., scaled down to 50% or even 30%), in the bottom-right corner of the converted output movie.

    I have one input movie that is going to be color graded. The PIP should use the original as an input, just a scaled-down version of it.

    I would like to use ffmpeg’s "-filter_complex" option to do the PIP, but all examples I can find on "-filter_complex" would use two already existing movies. Instead, I would like to make the color-corrected stream an on-the-fly input to "-filter_complex", which then renders the PIP.

    Is that doable, all in one go ?

    Both the individual snippets below work fine, I now would like to combine these and skip the creation of an intermediate color-graded TMP output which then gets combined, with the original, in a final PIP creation process.
    Your help combining these two separate steps into one single "-filter_complex" action is greatly appreciated !

    Thanks in advance,
    raven.

    [existing code snippets (M$ batch files)]

    ::declarations/defines::
    set "INPUT="
    set "TMP="
    set "OUTPUT="
    set "FFMPG="
    set "QU=9" :: quality settings

    set "CONV='"0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1
    0 -1 0:0 -1 0 -1 5 -1 0 -1 0'"" :: sharpening convolution filter

    ::color-grading part::
    %FFMPG% -i %INPUT% -vf convolution=%CONV%,colorbalance=rs=%rs%:gs=%gs%:bs=%bs%:rm=%rm%:gm=%gm%:bm=%bm%:rh=%rh%:gh=%gh%:bh=%bh% -q:v %QU% -codec:v mpeg4 %TMP%

    ::PIP part::
    %FFMPG% -i %TMP% -i %INPUT% -filter_complex "[1]scale=iw/3:ih/3
    [pip]; [0][pip] overlay=main_w-overlay_w-10:main_h-overlay_h-10" -q:v
    %QU% -codec:v mpeg4 %OUTPUT%

    [/existing code]
  • Opencv mask object from rtsp camera

    19 août 2016, par user3689259

    i want to add an image as mask in camera live frame after detect specific logo .
    if possible Output rtmp ://127.0.0.1:1935/live/mycamOutput ,, I have nginx-rtmp the rtmp can work if we add it in source , pls any one can help me

    //opencv
    #include "opencv2/imgcodecs.hpp"
    #include "opencv2/imgproc.hpp"
    #include "opencv2/videoio.hpp"
    #include <opencv2></opencv2>highgui.hpp>
    #include <opencv2></opencv2>video.hpp>
    //C
    #include
    //C++
    #include <iostream>
    #include <sstream>

    using namespace cv;
    using namespace std;

    // Global variables
    Mat frame; //current frame
    Mat fgMaskMOG2; //fg mask fg mask generated by MOG2 method
    Ptr<backgroundsubtractor> pMOG2; //MOG2 Background subtractor
    int keyboard; //input from keyboard

    /** Function Headers */
    void help();
    void processVideo(char* videoFilename);
    void processImages(char* firstFrameFilename);

    void help()
    {
       cout
       &lt;&lt; "--------------------------------------------------------------------------" &lt;&lt; endl
       &lt;&lt; "This program shows how to use background subtraction methods provided by "  &lt;&lt; endl
       &lt;&lt; " OpenCV. You can process both videos (-vid) and images (-img)."             &lt;&lt; endl
                                                                                       &lt;&lt; endl
       &lt;&lt; "Usage:"                                                                     &lt;&lt; endl
       &lt;&lt; "./bg_sub {-vid <video filename="filename">|-img <image filename="filename">}"                     &lt;&lt; endl
       &lt;&lt; "for example: ./bg_sub -vid video.avi"                                       &lt;&lt; endl
       &lt;&lt; "or: ./bg_sub -img /data/images/1.png"                                       &lt;&lt; endl
       &lt;&lt; "--------------------------------------------------------------------------" &lt;&lt; endl
       &lt;&lt; endl;
    }

    /**
    * @function main
    */
    int main(int argc, char* argv[])
    {
       //print help information
       help();

       //check for the input parameter correctness
       if(argc != 3) {
           cerr &lt;&lt;"Incorret input list" &lt;&lt; endl;
           cerr &lt;&lt;"exiting..." &lt;&lt; endl;
           return EXIT_FAILURE;
       }

       //create GUI windows
       namedWindow("Frame");
       namedWindow("FG Mask MOG 2");

       //create Background Subtractor objects
       pMOG2 = createBackgroundSubtractorMOG2(); //MOG2 approach

       if(strcmp(argv[1], "-vid") == 0) {
           //input data coming from a video
           processVideo(argv[2]);
       }
       else if(strcmp(argv[1], "-img") == 0) {
           //input data coming from a sequence of images
           processImages(argv[2]);
       }
       else {
           //error in reading input parameters
           cerr &lt;&lt;"Please, check the input parameters." &lt;&lt; endl;
           cerr &lt;&lt;"Exiting..." &lt;&lt; endl;
           return EXIT_FAILURE;
       }
       //destroy GUI windows
       destroyAllWindows();
       return EXIT_SUCCESS;
    }

    /**
    * @function processVideo
    */
    void processVideo(char* videoFilename) {
       //create the capture object
       VideoCapture capture(videoFilename);
       if(!capture.isOpened()){
           //error in opening the video input
           cerr &lt;&lt; "Unable to open video file: " &lt;&lt; videoFilename &lt;&lt; endl;
           exit(EXIT_FAILURE);
       }
       //read input data. ESC or 'q' for quitting
       while( (char)keyboard != 'q' &amp;&amp; (char)keyboard != 27 ){
           //read the current frame
           if(!capture.read(frame)) {
               cerr &lt;&lt; "Unable to read next frame." &lt;&lt; endl;
               cerr &lt;&lt; "Exiting..." &lt;&lt; endl;
               exit(EXIT_FAILURE);
           }
           //update the background model
           pMOG2->apply(frame, fgMaskMOG2);
           //get the frame number and write it on the current frame
           stringstream ss;
           rectangle(frame, cv::Point(10, 2), cv::Point(100,20),
                     cv::Scalar(255,255,255), -1);
           ss &lt;&lt; capture.get(CAP_PROP_POS_FRAMES);
           string frameNumberString = ss.str();
           putText(frame, frameNumberString.c_str(), cv::Point(15, 15),
                   FONT_HERSHEY_SIMPLEX, 0.5 , cv::Scalar(0,0,0));
           //show the current frame and the fg masks
           imshow("Frame", frame);
           imshow("FG Mask MOG 2", fgMaskMOG2);
           //get the input from the keyboard
           keyboard = waitKey( 30 );
       }
       //delete capture object
       capture.release();
    }

    /**
    * @function processImages
    */
    void processImages(char* fistFrameFilename) {
       //read the first file of the sequence
       frame = imread(fistFrameFilename);
       if(frame.empty()){
           //error in opening the first image
           cerr &lt;&lt; "Unable to open first image frame: " &lt;&lt; fistFrameFilename &lt;&lt; endl;
           exit(EXIT_FAILURE);
       }
       //current image filename
       string fn(fistFrameFilename);
       //read input data. ESC or 'q' for quitting
       while( (char)keyboard != 'q' &amp;&amp; (char)keyboard != 27 ){
           //update the background model
           pMOG2->apply(frame, fgMaskMOG2);
           //get the frame number and write it on the current frame
           size_t index = fn.find_last_of("/");
           if(index == string::npos) {
               index = fn.find_last_of("\\");
           }
           size_t index2 = fn.find_last_of(".");
           string prefix = fn.substr(0,index+1);
           string suffix = fn.substr(index2);
           string frameNumberString = fn.substr(index+1, index2-index-1);
           istringstream iss(frameNumberString);
           int frameNumber = 0;
           iss >> frameNumber;
           rectangle(frame, cv::Point(10, 2), cv::Point(100,20),
                     cv::Scalar(255,255,255), -1);
           putText(frame, frameNumberString.c_str(), cv::Point(15, 15),
                   FONT_HERSHEY_SIMPLEX, 0.5 , cv::Scalar(0,0,0));
           //show the current frame and the fg masks
           imshow("Frame", frame);
           imshow("FG Mask MOG 2", fgMaskMOG2);
           //get the input from the keyboard
           keyboard = waitKey( 30 );
           //search for the next image in the sequence
           ostringstream oss;
           oss &lt;&lt; (frameNumber + 1);
           string nextFrameNumberString = oss.str();
           string nextFrameFilename = prefix + nextFrameNumberString + suffix;
           //read the next frame
           frame = imread(nextFrameFilename);
           if(frame.empty()){
               //error in opening the next image in the sequence
               cerr &lt;&lt; "Unable to open image frame: " &lt;&lt; nextFrameFilename &lt;&lt; endl;
               exit(EXIT_FAILURE);
           }
           //update the path of the current frame
           fn.assign(nextFrameFilename);
       }
    }
    </image></video></backgroundsubtractor></sstream></iostream>
  • matroskaenc : write the channel mask for FLAC

    26 mai 2014, par Anton Khirnov
    matroskaenc : write the channel mask for FLAC
    
    • [DBH] libavformat/Makefile
    • [DBH] libavformat/matroskaenc.c