
Recherche avancée
Médias (2)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
-
Carte de Schillerkiez
13 mai 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Texte
Autres articles (97)
-
Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs
12 avril 2011, parLa 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, parMediaSPIP 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, parPour 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 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>