
Recherche avancée
Autres articles (14)
-
Les formats acceptés
28 janvier 2010, parLes commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
ffmpeg -codecs ffmpeg -formats
Les format videos acceptés en entrée
Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
Les formats vidéos de sortie possibles
Dans un premier temps on (...) -
Les vidéos
21 avril 2011, parComme les documents de type "audio", Mediaspip affiche dans la mesure du possible les vidéos grâce à la balise html5 .
Un des inconvénients de cette balise est qu’elle n’est pas reconnue correctement par certains navigateurs (Internet Explorer pour ne pas le nommer) et que chaque navigateur ne gère en natif que certains formats de vidéos.
Son avantage principal quant à lui est de bénéficier de la prise en charge native de vidéos dans les navigateur et donc de se passer de l’utilisation de Flash et (...) -
Gestion générale des documents
13 mai 2011, parMédiaSPIP ne modifie jamais le document original mis en ligne.
Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...)
Sur d’autres sites (4753)
-
Convert image sequence to video using ffmpeg and list of files
13 mai 2015, par rensaI have a camera taking time-lapse shots every 2–3 seconds, and I keep a rolling record of a few days’ worth. Because that’s a lot of files, I keep them in subdirectories by day and hour :
images/
2015-05-02/
00/
2015-05-02-0000-02
2015-05-02-0000-05
2015-05-02-0000-07
01/
(etc.)
2015-05-03/I’m writing a script to automatically upload a timelapse of the sunrise to YouTube each day. I can get the sunrise time from the web in advance, then go back after the sunrise and get a list of the files that were taken in that period using
find
:touch -d "$SUNRISE_START" sunrise-start.txt
touch -d "$SUNRISE_END" sunrise-end.txt
find images/"$TODAY" -type f -anewer sunrise-start.txt ! -anewer sunrise-end.txtNow I want to convert those files to a video with
ffmpeg
. Ideally I’d like to do this without making a copy of all the files (because we’re talking 3.5 GB per hour of images), and I’d prefer not to rename them to something likeimage000n.jpg
because other users may want to access the images. Copying the images is my fallback.But I’m getting stuck sending the results of
find
toffmpeg
. I understand that ffmpeg can expand wildcards internally, but I’m not sure that this is going to work where the files aren’t all in one directory. I also see a few people usingfind
’s--exec
option withffmpeg
to do batch conversions, but I’m not sure if this is going to work with image sequence input (as opposed to, say, converting 1000 images into 1000 single-frame videos).Any ideas on how I can connect the two—or, failing that, a better way to get files in a date range across several subdirectories into
ffmpeg
as an image sequence ? -
How to adjust mpeg 2 ts start time with ffmpeg ?
29 juin 2015, par Maxim KornienkoI’m writing simple HLS (Http Live Streaming) java server to live cast (really live, not on demand) screenshow + voice. I constantly get chunks of image frames and audio samples as input to my service and produce mpeg 2 ts files + m3u8 playlist web page as output. The workflow is the following :
- Collect (buffer) source video frames and audio for certain period of time
- Convert series of video frames to h.264 encoded video file
- Convert audio samples to mp3 audio file
-
Merge them to
.ts
file with ffmpeg commandffmpeg -i audio.mp3 -i video.mp4 -f mpegts -c:a copy -c:v copy -vprofile main -level:v 4.0 -vbsf h264_mp4toannexb -flags -global_header segment.ts
-
Publish several
.ts
files on m3u8 playlist.
The problem is resulting playlist interrupts after first segment is played. VLC logs following error :
freetype error: Breaking unbreakable line
ts error: libdvbpsi (PSI decoder): TS discontinuity (received 0, expected 4) for PID 17
ts error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 0
ts error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 4096
core error: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to 1000 ms)
core error: ES_OUT_RESET_PCR called
core error: Could not convert timestamp 185529572000
ts error: libdvbpsi (PSI decoder): TS discontinuity (received 0, expected 4) for PID 17
ts error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 0
ts error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 4096
core error: ES_OUT_SET_(GROUP_)PCR is called too late (jitter of 8653 ms ignored)
core error: Could not get display date for timestamp 0
core error: Could not convert timestamp 185538017000
core error: Could not convert timestamp 185538267000
core error: Could not convert timestamp 185539295977
...I guess the reason is that start time of segments do not belong to one stream, but it’s impossible to concat and resegment (with
ffmepg -f segment
) whole stream once new chunk is added. Tried adding#EXT-X-DISCONTINUITY
tag to playlist as suggested here but it didn’t help. When Iffprobe
them I get :Input #0, mpegts, from '26.ts':
Duration: 00:00:10.02, start: 1.876978, bitrate: 105 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 640x640, 4 fps, 4 tbr, 90k tbn, 8 tbc
Stream #0:1[0x101]: Audio: mp3 ([3][0][0][0] / 0x0003), 48000 Hz, mono, s16p, 64 kb/sWhere start value in line
Duration: 00:00:10.02, start: 1.876978, bitrate: 105 kb/s
is more or less equal for all segments.
When I check segments from available proven-to-work playlists (like http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch1/appleman.m3u8) they all have diffrenet start values for each segment, for example :Input #0, mpegts, from 'segm150518140104572-424570.ts':
Duration: 00:00:06.17, start: 65884.808689, bitrate: 479 kb/s
Program 257
Stream #0:0[0x20]: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p, 320x180 [SAR 1:1 DAR 16:9], 30 fps, 29.97 tbr, 90k tbn, 60 tbc
Stream #0:1[0x21]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 115 kb/s
Stream #0:2[0x22]: Data: timed_id3 (ID3 / 0x20334449)and the next after it
Input #0, mpegts, from 'segm150518140104572-424571.ts':
Duration: 00:00:06.22, start: 65890.814689, bitrate: 468 kb/s
Program 257
Stream #0:0[0x20]: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p, 320x180 [SAR 1:1 DAR 16:9], 30 fps, 29.97 tbr, 90k tbn, 60 tbc
Stream #0:1[0x21]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 124 kb/s
Stream #0:2[0x22]: Data: timed_id3 (ID3 / 0x20334449)differ in the way that start time of
segm150518140104572-424571.ts
is equal to start time + duration ofsegm150518140104572-424570.ts
.How could this start value be adjusted with
ffmpeg
? Or maybe my whole aproach is wrong ? Unfortunately I couldn’t find on the internet working example of live (not on demand) video service implemented with ffmepg. -
Is celery a good choice for long running tasks ?
2 décembre 2024, par jasoosWe are using a combination of django, rabbitmq, celery and ffmpeg to read camera streams and break them into images to be stored into filesystem. This setup works 24x7. Now, for each camera stream we are creating a separate task and each will theoretically run for indefinite period.


If a stream goes down, we wait for n number of frames, create an exception and in the exception handler, after creating a delay of 1 min using time.sleep we rerun the ffmpeg process.


My questions are,
Is this a right approach ?
Should we use celery for reading streams ?
Is celery the right tool to use for this task ?
Can we create delay in celery task using time.sleep ? Will it affect the other tasks ?