Recherche avancée

Médias (0)

Mot : - Tags -/auteurs

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (37)

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

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

  • Soumettre améliorations et plugins supplémentaires

    10 avril 2011

    Si vous avez développé une nouvelle extension permettant d’ajouter une ou plusieurs fonctionnalités utiles à MediaSPIP, faites le nous savoir et son intégration dans la distribution officielle sera envisagée.
    Vous pouvez utiliser la liste de discussion de développement afin de le faire savoir ou demander de l’aide quant à la réalisation de ce plugin. MediaSPIP étant basé sur SPIP, il est également possible d’utiliser le liste de discussion SPIP-zone de SPIP pour (...)

Sur d’autres sites (6371)

  • hls.js unable to maintain seek with live video [only] stream

    15 décembre 2024, par Rob

    I am encoding a live 25 FPS 950x540 H.264 video-only stream using the latest (built from source) FFmpeg, 10 segments in the manifest, each of 5 seconds, and consuming that stream on another machine on my local LAN in [incognito to avoid cache issues] Chrome with the latest hls.js (cdn.jsdelivr.net/npm/hls.js@latest). The encoded video plays but not reliably ; I have two problems :

    


      

    1. When the stream is running, the hls.js client starts to be unable to sync with the video stream after a few minutes, complaining of being beyond the end of the sync window and, on re-sync, getting empty buffers.
    2. 


    3. The hls.js client will not sync to the stream unless I start the stream and the client at the same time : if the hls.js client tries to use the stream a few 10's of seconds after it has started it again fails to sync with the stream. The only way I can start the stream successfully is if the .m3u8 file is deleted first, so the browser cannot find the file, then the client reads the file and begins streaming. Chrome's F12 window says things like "[stream-controller] : Playback : 0.000 is located too far from the end of live sliding playlist : 49.92, reset currentTime to : 44.920", which might be expected but then more mysteriously says "[abr] buffer is empty, optimal quality level 0", something which definitely doesn't happen in the succese case.
    4. 


    


    Obviously I have something fundamentally wrong, I just can't figure out what. My HLS flags to FFmpeg are discont_start and omit_endlist and the client has been directed not to cache. Here is a sample .m3u8 output file :

    


    #EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:5
#EXT-X-MEDIA-SEQUENCE:30
#EXTINF:5.120000,
http://10.10.1.16/watchdog30.ts
#EXTINF:4.880000,
http://10.10.1.16/watchdog31.ts
#EXTINF:5.120000,
http://10.10.1.16/watchdog32.ts
#EXTINF:4.880000,
http://10.10.1.16/watchdog33.ts
#EXTINF:5.120000,
http://10.10.1.16/watchdog34.ts
#EXTINF:4.880000,
http://10.10.1.16/watchdog35.ts
#EXTINF:5.120000,
http://10.10.1.16/watchdog36.ts
#EXTINF:4.880000,
http://10.10.1.16/watchdog37.ts
#EXTINF:5.120000,
http://10.10.1.16/watchdog38.ts
#EXTINF:4.880000,
http://10.10.1.16/watchdog39.ts


    


    I've tried also adding the flags independent_segments and inclusion of program_date_time, which have not helped.

    


    What have I missed ?

    


    My full code (FFMpeg is driven at its C API) can be found here : https://github.com/RobMeades/watchdog/blob/83e718390f779a7ef98d2be009784e8be5deaf5f/software/watchdog.cpp#L933. This code is running on a Raspberry Pi 5 under Raspbian latest.

    


  • ffmpeg failed to seek near the end the of video

    2 novembre 2020, par HanXu

    I have a video with duration 10.00 :

    


    


    $ ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 small.avi

    


    $ 10.000000

    


    


    However, when I want to take a screenshot at the last frame by

    


    


    $ ffmpeg -ss 10.00 -i small.avi -frames:v 1 -q:v 2 -f image2 -y output.jpg

    


    


    It complains that

    


    


    could not seek to position 10.000

    


    


    In fact, even if I try to take screenshot at 9.98s, ffmpeg still fails to seek

    


    


    $ ffmpeg -ss 9.98 -i small.avi -frames:v 1 -q:v 2 -f image2 -y output.jpg

    


    could not seek to position 9.98

    


    


    However, it succeeds for 9.979999s.

    


    Following is the detailed info of my video by running

    


    


    $ ffprobe -v error -i small.avi -show_streams -show_format -print_format json

    


    


    {
    "streams": [
        {
            "index": 0,
            "codec_name": "dvvideo",
            "codec_long_name": "DV (Digital Video)",
            "codec_type": "video",
            "codec_time_base": "1/25",
            "codec_tag_string": "dvsd",
            "codec_tag": "0x64737664",
            "width": 720,
            "height": 576,
            "coded_width": 720,
            "coded_height": 576,
            "has_b_frames": 0,
            "sample_aspect_ratio": "16:15",
            "display_aspect_ratio": "4:3",
            "pix_fmt": "yuv420p",
            "level": -99,
            "chroma_location": "topleft",
            "refs": 1,
            "r_frame_rate": "25/1",
            "avg_frame_rate": "25/1",
            "time_base": "1/25",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 250,
            "duration": "10.000000",
            "bit_rate": "28915663",
            "nb_frames": "250",
            "disposition": {
                "default": 0,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            }
        },
        {
            "index": 1,
            "codec_name": "pcm_s16le",
            "codec_long_name": "PCM signed 16-bit little-endian",
            "codec_type": "audio",
            "codec_time_base": "1/48000",
            "codec_tag_string": "[1][0][0][0]",
            "codec_tag": "0x0001",
            "sample_fmt": "s16",
            "sample_rate": "48000",
            "channels": 2,
            "bits_per_sample": 16,
            "r_frame_rate": "0/0",
            "avg_frame_rate": "0/0",
            "time_base": "1/48000",
            "start_pts": 0,
            "start_time": "0.000000",
            "bit_rate": "1536000",
            "nb_frames": "480256",
            "disposition": {
                "default": 0,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            }
        }
    ],
    "format": {
        "filename": "small.avi",
        "nb_streams": 2,
        "nb_programs": 0,
        "format_name": "avi",
        "format_long_name": "AVI (Audio Video Interleaved)",
        "start_time": "0.000000",
        "duration": "10.000000",
        "size": "37948606",
        "bit_rate": "30358884",
        "probe_score": 100,
        "tags": {
            "encoder": "Lavf58.29.100"
        }
    }
}


    


    It seems that there are some mismatching between ffmpeg seeking and the duration of the video ? How to correctly take a screenshot at, say 9.99s ?

    


    Much thanks for any help !

    


  • avformat/mpjpegdec : make sure we seek back to the ensured buffer

    26 septembre 2020, par Marton Balint
    avformat/mpjpegdec : make sure we seek back to the ensured buffer
    

    It was possible for the old code to seek back before the most recently read
    data if start of a new multipart was across read boundaries. Now we read some
    small sections multiple times to avoid this, but that is OK.

    Signed-off-by : Marton Balint <cus@passwd.hu>

    • [DH] libavformat/mpjpegdec.c