
Recherche avancée
Autres articles (37)
-
Ecrire une actualité
21 juin 2013, parPré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, parLa 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 2011Si 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 RobI 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 :

- 

- 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. - The
hls.js
client will not sync to the stream unless I start the stream and the client at the same time : if thehls.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.






Obviously I have something fundamentally wrong, I just can't figure out what. My HLS flags to FFmpeg are
discont_start
andomit_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 ofprogram_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.


- When the stream is running, the
-
ffmpeg failed to seek near the end the of video
2 novembre 2020, par HanXuI 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 Balintavformat/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>