Recherche avancée

Médias (29)

Mot : - Tags -/Musique

Autres articles (61)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

  • Les formats acceptés

    28 janvier 2010, par

    Les commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
    ffmpeg -codecs ffmpeg -formats
    Les format videos acceptés en entrée
    Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
    Les formats vidéos de sortie possibles
    Dans un premier temps on (...)

Sur d’autres sites (9181)

  • FFMPEG Compilation on Windows 32 bit Vs 64 bit

    15 janvier 2016, par ARK

    When I try to compile ffmpeg using MinGW, targeting 32-bit, I observed below error for several files :

    c :\mingw\include\unistd.h:79:1 : error : expected ’,’ or ’ ;’ before
    ’int’
    int __mingw_sleep( unsigned long, unsigned long ) ;
    ^
    In file included from c :\mingw\include\zconf.h:452:0,
    from c :\mingw\include\zlib.h:34,
    from c :/Work/FFMPEG_2.8.4/src/libavcodec/pngenc.c:35 :
    c :\mingw\include\unistd.h:105:1 : error : expected ’,’ or ’ ;’ before
    ’int’
    int nanosleep( const struct timespec *, struct timespec * ) ;
    ^
    c :\mingw\include\unistd.h:125:28 : error : expected ’,’ or ’ ;’
    before ’usleep’
    int _cdecl __MINGW_NOTHROW usleep( useconds_t
    )__MINGW_ATTRIB_DEPRECATED ;
    ^
    c :\mingw\include\unistd.h:138:10 : error : conflicting types for ’_cdecl’
    unsigned _cdecl
    __MINGW_NOTHROW sleep( unsigned ) ;
    ^
    c :\mingw\include\unistd.h:125:5 : note : previous declaration of ’_cdecl’ was here

    int _cdecl _MINGW_NOTHROW usleep( useconds_t
    )_MINGW_ATTRIB_DEPRECATED ;
    ^
    c :\mingw\include\unistd.h:138:33 : error : expected ’,’ or ’ ;’ before ’sleep’
    unsigned _cdecl _MINGW_NOTHROW sleep( unsigned ) ;
    ^
    c :\mingw\include\unistd.h:153:12 : error : expected ’=’, ’,’, ’ ;’, ’asm’ or ’_att
    ribute__’ before
    ’ftruncate’ int _cdecl ftruncate( int, off_t ) ;
    ^
    make : *** [libavcodec/pngenc.o] Error 1

    Similar issue was faced by someone and I provided a solution (workaround) in another forum

    Recently, I started FFMPEG compilation targeting to 64-bit. FFMPEG code (version 2.8.4) downloaded from the ffmpeg site compiled straight for 64-bit. I was expecting errors, but surprisingly I don’t see above errors. Then I thought FFMPEG could have fixed the issues, but it started showing up above errors again when I compiled it for 32-bit. Initially I thought it may be to do with my compilation environment, but similar issue was faced by some other people as well. So, I can confidently rule out the compilation environment factor.

    So the question here is, how come above error is specific to 32-bit. I couldn’t understand a bit, any idea about this behavior ??

  • Rails ActionController::Live - Sends everything at once instead of async

    28 janvier 2016, par Michael B

    I have an issue with rails ActionController::Live

    In the end I want to show the progress of FFMPEG to the user, but for now I want to get this minimal example running :

    Rails media_controller.rb :

    class MediaController < ApplicationController
     include ActionController::Live

     def stream
       puts "stream function loaded"

         response.headers['Content-Type'] = 'text/event-stream'
         i = 0
         begin
           response.stream.write "data: 1\n\n"
           sleep 0.5
           i += 1
           puts "response... data: " + i.to_s
         end while i < 10
       response.stream.close
     end
    end

    Javascript :

    source = new EventSource("/test/0");
    source.addEventListener("message", function(response) {
     // Do something with response.data
     console.log('I have received a response from the server: ' + response);
    }, false);

    When I navigate to the site, there are no JavaScript Errors showing. As soon as I navigate to the site, the "stream"-Action of the MediaController gets successfully called. I can verify this, by looking at the Server-Console. It gives me the following output. After every response line, there is a 500ms delay, like expected :

    stream function loaded
    response... data: 1
    response... data: 2
    response... data: 3
    response... data: 4
    response... data: 5
    response... data: 6
    response... data: 7
    response... data: 8
    response... data: 9
    response... data: 10
    Completed 200 OK in 5005ms (ActiveRecord: 0.8ms)

    On the JavaScript Side, it gives me the following Output :

    (10x) I have received a response from the server: [object MessageEvent]

    But the problem is here, that it sends all these 10 Messages from the server after 5 seconds at the same time ! The expected behavior however is, that it should send me 1 message every 0.5 seconds !

    So what am I doing wrong here ? Where is the error ?

    Screenshot Rails Console / JavaScript Console

  • What's the reason of failed to read from input stream while playing in ffmpeg

    5 février 2016, par Long Bai

    I’m using ffmpeg library in qt compiled with mingw.
    I’m going to read from rtmp stream, process video frame and write to another rtmp stream.
    I refered ffmpeg examples and developed it.
    It works well with local video stream.
    But on the internet stream, it is failed to read from input stream after a few seconds playing.
    What’s the reason of this problem ?
    Thanks for your answer.

    Here is my code.
    as you can see the following, on the line "ret=av_read_frame(m_pInContext,&inPacket)" return negative value.

    while (!m_bAborted)

    // read stream.
    int64_t tstart = av_gettime_relative() ;
    ret = av_read_frame(m_pInContext, &inPacket) ;
    if (ret < 0)
    SetError("Failed to read input stream.") ;
    break ;
    //continue ;

       if (inPacket.stream_index == m_nVideoStreamIdx)
       {
           do
           {
               // decode frame.
               int decodedLen = DecodePacket(m_pInFrame, &amp;inPacket, &amp;got_frame, 1);
               if (decodedLen &lt; 0)
                   break;

               if (got_frame)
               {
                   // convert frame from yuv420 to rgb24.
                   if (sws_ctx1)
                   {
                       sws_scale(sws_ctx1, m_pInFrame->data, m_pInFrame->linesize, 0, m_nHeight, pRawData, arrRawDataLineSize);
                   }

                   // image processing to remove the code and ads on video.
                   if (m_pListener)
                       m_pListener->OnFrame(pRawData[0], m_nWidth, m_nHeight, arrRawDataLineSize[0], AV_PIX_FMT_RGB24, 24);

                   // convert from rgb24 to yuv420 to write to the output stream.
                   if (sws_ctx2)
                   {
                       sws_scale(sws_ctx2, pRawData, arrRawDataLineSize, 0, m_nHeight, m_dst_picture.data, m_dst_picture.linesize);
                   }

                   // increase frame number.
                   frameCount ++;

                   // write to the output stream.
                   ret = WriteVideoFrame(m_pOutContext, m_pOutVideoStream, &amp;frameCount);
                   if (ret &lt; 0) {
                       if (sws_ctx2)
                           sws_freeContext(sws_ctx2);
                       sws_ctx2 = NULL;
                       CloseOutputStream();

                       SetError("Failed to write video stream.");
                   }

                   // estimate frame time and sleep.
                   //clock_t tend = clock();
                   int64_t tend = av_gettime_relative();
                   frameDuration = tend-tstart;//(long)(1000 * (tend - tstart) / CLOCKS_PER_SEC);
                   if (1000*frameTime - frameDuration > 0)
                       av_usleep(1000*frameTime - frameDuration);
                       //QThread::msleep(frameTime - frameDuration);
                   tstart = tend;
               }

               // if there is another frame in the packet, then loop.
               inPacket.size -= decodedLen;
               inPacket.data += decodedLen;
           }while(inPacket.size > 0);
       }

       else if (m_pOutContext)
       {

       }

       av_packet_unref(&amp;inPacket);
    }