Recherche avancée

Médias (2)

Mot : - Tags -/map

Autres articles (97)

  • Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs

    12 avril 2011, par

    La manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
    Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras.

  • Possibilité de déploiement en ferme

    12 avril 2011, par

    MediaSPIP peut être installé comme une ferme, avec un seul "noyau" hébergé sur un serveur dédié et utilisé par une multitude de sites différents.
    Cela permet, par exemple : de pouvoir partager les frais de mise en œuvre entre plusieurs projets / individus ; de pouvoir déployer rapidement une multitude de sites uniques ; d’éviter d’avoir à mettre l’ensemble des créations dans un fourre-tout numérique comme c’est le cas pour les grandes plate-formes tout public disséminées sur le (...)

  • Librairies et logiciels spécifiques aux médias

    10 décembre 2010, par

    Pour un fonctionnement correct et optimal, plusieurs choses sont à prendre en considération.
    Il est important, après avoir installé apache2, mysql et php5, d’installer d’autres logiciels nécessaires dont les installations sont décrites dans les liens afférants. Un ensemble de librairies multimedias (x264, libtheora, libvpx) utilisées pour l’encodage et le décodage des vidéos et sons afin de supporter le plus grand nombre de fichiers possibles. Cf. : ce tutoriel ; FFMpeg avec le maximum de décodeurs et (...)

Sur d’autres sites (7748)

  • 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