Recherche avancée

Médias (1)

Mot : - Tags -/artwork

Autres articles (66)

  • Participer à sa traduction

    10 avril 2011

    Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
    Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
    Actuellement MediaSPIP n’est disponible qu’en français et (...)

  • Ecrire une actualité

    21 juin 2013, par

    Pré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 ) (...)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

Sur d’autres sites (6923)

  • Rawvideo to mp4 container

    21 février 2020, par Expressingx

    How can I stream rawvideo codec to mp4 container ? The error is Could not find tag for codec rawvideo in stream #0, codec not currently supported in container. Url is for example video=Logitech HD Webcam C270 and Format is dshow. Filename is lets say out.mp4

    AVFormatContext* pInputFmtCtx = avformat_alloc_context();
    AVInputFormat* inputFormat = av_find_input_format(Format);

    avformat_open_input(&pInputFmtCtx, url, inputFormat, null);
    if (avformat_find_stream_info(pInputFmtCtx, null) != -1)
      ... find stream index

    AVCodec* videoDecoder = avcodec_find_decoder(pInputFmtCtx->streams[_vidStreamIndex]->codecpar->codec_id);

    AVCodecContext* videcCodecCtx = avcodec_alloc_context3(videoDecoder);
    avcodec_parameters_to_context(videcCodecCtx, videoCodecParams);

    avcodec_open2(videcCodecCtx, videoDecoder, null);

    // and the output context
    AVFormatContext* pOutputFmtCtx = null;
    avformat_alloc_output_context2(&pOutputFmtCtx, null, null, fileName);

    // iterate over streams of input context and when we find it
    AVStream* in_stream = pInputFmtCtx->streams[i];
    AVCodecParameters* in_codecpar = in_stream->codecpar;

    AVStream* out_stream = avformat_new_stream(pOutputFmtCtx, null);

    // init h264 encoder
    AVCodec* videoEncoder = ffmpeg.avcodec_find_encoder(AVCodecID.AV_CODEC_ID_H264);
    pVideoEncoderCodecContext = ffmpeg.avcodec_alloc_context3(videoEncoder);

    pVideoEncoderCodecContext->time_base = videcCodecCtx->time_base;
    pVideoEncoderCodecContext->framerate = videcCodecCtx->framerate;
    pVideoEncoderCodecContext->width = videcCodecCtx->width;
    pVideoEncoderCodecContext->height = videcCodecCtx->height;
    pVideoEncoderCodecContext->bit_rate = videcCodecCtx->bit_rate;
    pVideoEncoderCodecContext->gop_size = videcCodecCtx->gop_size;
    pVideoEncoderCodecContext->pix_fmt = AVPixelFormat.AV_PIX_FMT_YUV420P;
    pVideoEncoderCodecContext->flags |= ffmpeg.AV_CODEC_FLAG_GLOBAL_HEADER;

    // copy parameters to outstream codec
    avcodec_parameters_copy(out_stream->codecpar, in_codecpar);

    ....

    // after that
    avio_open(&pOutputFmtCtx->pb, fileName, AVIO_FLAG_WRITE);
    avformat_write_header(pOutputFmtCtx, &opts);

    // and reading
    while (av_read_frame(pInputFormatContext, pkt) >= 0)

    // decode
    avcodec_send_packet(videcCodecCtx, pkt);
    //receive the raw frame from the decoder
    avcodec_receive_frame(videcCodecCtx, frame);

    // now encode if its video packet
    int ret = avcodec_send_frame(pVideoEncoderCodecContext, frame);
    if (ret < 0)
    {
       continue;
    }

    while (ret >= 0)
    {
       ret = avcodec_receive_packet(pVideoEncoderCodecContext, packet);

       if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)
       {
              return;
       }

       av_packet_rescale_ts(packet, pVideoEncoderCodecContext->time_base, pOutputFmtCtx->streams[packet->stream_index]->time_base);
       av_interleaved_write_frame(pOutputFmtCtx, pkt);

       av_packet_unref(packet);
    }

    This works fine if the camera streams H264, but if the camera streams rawvideo, it doesn’t stream to the file and throws error.

    EDIT As suggested I’m trying to encode it now, but avcodec_send_frame() returns -22 and nothing is saved to the file. Where do I miss ? Code edited.

  • Opencv RTSP streaming with ffmpeg and gstreamer

    14 septembre 2015, par ironman

    I am using an ip camera which has mainstream (with resolution 1920x1080) and substream (with resolution 720x576). My aim is to detect the motion by using the substream, if motion occurs I take a snopshot from the mainstream and do some processing on this image. Here is my code’

       VideoCapture cap;   //video capture device captures the pal stream
       VideoCapture cap2;  //video capture device captures the main stream

       // cap.set(CV_CAP_PROP_BUFFERSIZE,1);
       // cap2.set(CV_CAP_PROP_BUFFERSIZE,1);
       //cap.set(CV_CAP_GSTREAMER_QUEUE_LENGTH,1);
       //cap2.set(CV_CAP_GSTREAMER_QUEUE_LENGTH,1);
       cap.open("rtsp://usr:pass@x.x.x.x:554/Streaming/Channels/2?transportmode=unicast&profile=Profile_2",CAP_FFMPEG);  //open substream
       cap2.open("rtsp:///usr:pass@x.x.x.x:554/Streaming/Channels/1?transportmode=unicast&profile=Profile_1",CAP_FFMPEG);  //open mainstream
       bool frame_read = false;
       int motion val;

       while (true) {
           frame_read = cap.read(rgb_im); //read the frame from substream
           //cap2.grab();
           if (!frame_read) {
               break;
           }
           cvtColor(rgb_im, gray_im, CV_BGR2GRAY);
           motion_val = detect_motion(gray_im);   //find the motion value

           if (motion_val > MOTION_OCCURRED)    //check if motion occurs
           {
               cap2>>frame_big;    //get one frame from the main stream
               process(frame_big);  //do processing
           }
           imshow("1", rgb_im);
               if (waitKey(1) >= 0)
                   break;
       }`

    When, I open the stream with CAP_FFMPEG flag latency is very low (under 1 sec). As seen above I regularly read the substream and if motion occurs I read the mainstream. But the frames which I read from the mainstream is not synchronous with the substream. Most probably I grab the frames which waits in the buffer. So I miss the frame with motion and I get an older frame. How can I handle this issue ? Somehow I have to make buffer size 1 frame but I cannot find any way.

    I have tried
    cap.set(CV_CAP_PROP_BUFFERSIZE,1); but since it needs DC1394 support it does not solve my problem.

    Secondly, I have tried cap2.grab() after I read the substream but it increases the latency(make latency about 3 seconds).

    Thirdly, I have tried to open videocapture objects with cv_cap_gstreamer flag cap.open("rtsp://usr:pass@x.x.x.x:554/Streaming/Channels/2transportmode=unicast&profile=Profile_2",CV_CAP_GSTREAMER); . It solves my buffering problem. In other words, when I detect the motion from the substream, I am able to capture the same instant from the mainstream. But with the gstreamer I have huge delay about 3 seconds which is not desirable for my case.(with gstreamer I tried to read several rtsp streams with different resolutions and latency remains the same) How can I solve the latency issue when I am using gstreamer with opencv ?

  • Evolution #3953 : formulaire de date sur les rubriques

    12 février 2021, par RastaPopoulos ♥

    Dans tous les cas il me semble nécessaire de pouvoir agir sur les dates des objets, sachant qu’historiquement les dates des rubriques sont liées automatiquement à la date de leur dernier article, faudrait-il trouver une solution pour bloquer/débloquer cet automatisme ?

    1) Les dates des rubriques sont liés aux articles, mais il me semble que soit la doc n’est pas assez explicite, soit le code ne va pas jusqu’au bout (mais ça impliquerait possiblement des trop gros tests). En effet, la date des rubriques n’est pas liée vaguement à la date du contenu le plus récent publié dedans. :) C’est plus fourbement précis : c’est la date du dernier contenu dont le statut a été mis en publié pendant qu’il était dans cette rubrique. Et ça à défaut de changer le code pour l’instant, il faudrait au moins le dire moins sibyllin. Concrètement ça signifie que si on déplace un article (publié bien sûr) depuis une autre rubrique dedans après coup, avec une date plus récente, ça ne change rien à la date de la rubrique (dont le contenu a pourtant changé toute autant qu’en publiant direct depuis dedans). En théorie il faudrait que ça change en cascade la date de tous les parents quand on déplace un article (la rubrique de destination et toute la hiérarchie). Et possiblement d’autres cas de ce genre.

    2) Quoiqu’il en soit, même s’il y a un changement de date par défaut, je pense aussi qu’il faut pouvoir décider qu’on veut la changement manuellement après coup. Si on a une liste de rubriques "par date de contenu récent", on peut rien corriger actuellement si les dates ne vont pas. Là j’ai le cas après une migration WP par exemple.

    En attendant faudrait un mini plugin tout simple pour ajouter le form de date sur les rubriques comme le montre touti au début. Mais est-ce ça devrait pas être natif directement ?