Recherche avancée

Médias (1)

Mot : - Tags -/intégration

Autres articles (65)

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

  • Personnaliser les catégories

    21 juin 2013, par

    Formulaire de création d’une catégorie
    Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
    Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire.
    Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
    Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 is the first MediaSPIP stable release.
    Its official release date is June 21, 2013 and is announced here.
    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 (13068)

  • Why do I catch the "AccessViolationException" exception in av_hwframe_transfer_data () when I run it as a windows service ?

    5 décembre 2024, par vakym

    I write Windows service witch decodig video stream from camera.
I write it on c# with FFMPEG.Autogen wrapper.

    



    My problem is "AccessViolationException" when i run it as service. 
If i run application as Console Application i have no exceptions.

    



    In Stacktrace i see this :

    



    в FFmpeg.AutoGen.ffmpeg+<>c.<.cctor>b__5_572(FFmpeg.AutoGen.AVFrame*, FFmpeg.AutoGen.AVFrame*, Int32)
в FFmpeg.AutoGen.ffmpeg.av_hwframe_transfer_data(FFmpeg.AutoGen.AVFrame*, FFmpeg.AutoGen.AVFrame*,Int32)
в VideoProviderService.VideoSources.RTSPVideoSource.TryDecodeNextFrame(Boolean ByRef)


    



    Code of TryDecodeNextFrame method :

    



    public IntPtr TryDecodeNextFrame(out bool state)
{
    try
    {
        ffmpeg.av_frame_unref(pFrame);
        ffmpeg.av_frame_unref(cpuFrame);
        int error;
        do
        {
            try
            {
                do
                {
                    timeout = DateTime.Now.AddSeconds(2);
                    error = ffmpeg.av_read_frame(_pFormatContext, pPacket);
                    if (error == ffmpeg.AVERROR_EOF)
                    {
                        state = false;
                        return IntPtr.Zero;
                    }
                    error.ThrowExceptionIfError();
                } while (pPacket->stream_index != _streamIndex);
                ffmpeg.avcodec_send_packet(pCodecContext, pPacket).ThrowExceptionIfError();
            }
            finally
            {
                ffmpeg.av_packet_unref(pPacket);
            }
            error = ffmpeg.avcodec_receive_frame(pCodecContext, pFrame);
        } while (error == ffmpeg.AVERROR(ffmpeg.EAGAIN));
        error.ThrowExceptionIfError();
        ffmpeg.av_hwframe_transfer_data(cpuFrame, pFrame, 0).ThrowExceptionIfError();
        ptrToFrame = (IntPtr)vfc.Convert(*cpuFrame).data[0];  
    }
    catch
    {
        state = false;
        return IntPtr.Zero;
    }
    state = true;
    return ptrToFrame;
}


    



    What i tried to do :

    



      

    1. I checked arguments of av_hwframe_transfer_data.
    2. 


    3. I changed the user for the service.
    4. 


    5. I tried compile as x86 or x64 configuration.
    6. 


    



    I have no idea how to solve this.
Does anyone have any thoughts ?

    


  • aacdec_ac : fix signed overflow in ff_aac_ac_update_context()

    22 mai, par Lynne
    aacdec_ac : fix signed overflow in ff_aac_ac_update_context()
    

    The issue is that state->cur[] is 8-bits, but a+b+1 can overflow
    before being clipped to 0xF in the following line, causing an incorrect
    state to be saved for the next symbol.

    This solves numerous bitstream desyncs, particularly when coefficients
    with magnitude greater than 127 are sent.

    • [DH] libavcodec/aac/aacdec_ac.c
  • ffmpeg extract segment from video on-the-fly

    29 novembre 2022, par brunoais

    Context

    


    I want to make a service that hosts mp4 files but also provides video streaming.

    


    The server side is made of 2 "small" edge servers with capacity to cache about 0.1% of the content and one main server with a fraction of the bandwidth of the edge servers but much more robust storage.

    


    Recent status

    


    With the help of the ffmpeg manual,
    
Recently, when a segment is requested by an edge server, I run this command in ffmpeg

    


    ffmpeg -i in.mp4 -f hls -hls_list_size 0 -hls_playlist 1 -hls_time 60 -strftime 1  -hls_flags independent_segments+second_level_segment_index+second_level_segment_duration -hls_base_url '/path/to/file/' -hls_segment_filename 'name_%%03d.ts'  -c copy -copyts -hls_segment_type fmp4 out.m3u8


    


    Then obtain the requested segment (plus 3 subsequent ones) then delete everything.

    


    Current status

    


    Currently, I tried to get some level of optimization using -to :

    


    ffmpeg -i in.mp4 -to  -f hls -hls_list_size 0 -hls_playlist 1 -hls_time 60 -strftime 1  -hls_flags independent_segments+second_level_segment_index+second_level_segment_duration -hls_base_url '/path/to/file/' -hls_segment_filename 'name_%%03d.ts'  -c copy -copyts -hls_segment_type fmp4 out.m3u8


    


    Then sending the requested segments to the edge that requested them, then delete the result.
Do note that /path/to/file/ is a tmpfs with quite modest capacity (files can't stay there for too long).

    


    The current setback

    


    The main issue I get with the current process is that it takes a long time to obtain the last segments (2-4s).
That creates a bottleneck in how long segments take to be served. I can increase the buffer from 3 videos to 5 (or even more) but that doesn't solve the actual problem and, instead, will bring more strain on other areas.

    


    Cutting is not reliable

    


    There doesn't seem to exist an option to select what segments to generate using ffmpeg.

    


    Using cutting argument for start time (-ss) has shown to usually work but regularely causes the first keyframe used to be wrong. However, I believe I have all segment files in variable length and cut at the keyframe of the original file.

    


    Help needed

    


    How to extract an arbitrary segment of an mp4, described in the m3u8 file (which was done in a previous extraction) ?

    


    I have full control over ffmpeg and I can automate edits to the m3u8 file after generating them, as required. However, I need to understand and see how can this be solved.