Recherche avancée
Autres articles (112)
-
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page. -
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Encoding and processing into web-friendly formats
13 avril 2011, parMediaSPIP automatically converts uploaded files to internet-compatible formats.
Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
All uploaded files are stored online in their original format, so you can (...)
Sur d’autres sites (7475)
-
keepalive type and frequency in ffmpeg [on hold]
19 novembre 2013, par Jack SimthMy company has a bunch of IP cameras that we distribute - specifically Grandstream - and the manufacturer has changed their firmware. The normal keepalive that ffmpeg uses for the rtsp streams ( either ff_rtsp_send_cmd_async(s, "GET_PARAMETER", rt->control_uri, NULL) ; or ff_rtsp_send_cmd_async(s, "OPTIONS", "*", NULL) ; both in in libavformat/rtspdec.c) is no longer working, for two reasons :
1) The new Grandstream firmware is now checking for a receiver report to determine whether or not the program reading the stream is live, not just anything.
2) The new Grandstream firmware requires that the receiver report to keep the connection alive happen at least once every 25 seconds, and on the audio stream it is currently only happening about every 30 seconds or so (video is getting it every 7 seconds or so).
So after about a minute with ffmpeg connected, the camera stops sending the audio stream, the audio stream on ffmpeg reads end-of-file, and then ffmpeg shuts everything down.
As I can't change the firmware, I'm trying to dig through the ffmpeg code to make it send the appropriate receiver report for the keep alive... but I am getting nowhere. I've added a little snippet of code into the receiver reports so I know when they're running when I call ffmpeg on debug, but... well, it's not going well.
Test command :
ffmpeg -loglevel debug -i rtsp ://admin:admin@192.168.4.3:554/0 -acodec libmp3lame -ar 22050 -vcodec copy -y -f flv /dev/null &> test.txtTest output :
`[root@localhost ffmpeg]# cat test.txt
ffmpeg version 2.0 Copyright (c) 2000-2013 the FFmpeg developers
built on Aug 21 2013 14:24:28 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-3)
configuration: --datadir=/usr/share/ffmpeg --bindir=/usr/local/bin --libdir=/usr/local/lib --incdir=/usr/local/include --shlibdir=/usr/lib --mandir=/usr/share/man --disable-avisynth --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables' --enable-avfilter --enable-libx264 --enable-gpl --enable-version3 --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-x11grab --enable-librtmp --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-static --enable-libgsm --enable-libxvid --enable-libvpx --enable-libvorbis --enable-libvo-aacenc --enable-libmp3lame
libavutil 52. 38.100 / 52. 38.100
libavcodec 55. 18.102 / 55. 18.102
libavformat 55. 12.100 / 55. 12.100
libavdevice 55. 3.100 / 55. 3.100
libavfilter 3. 79.101 / 3. 79.101
libswscale 2. 3.100 / 2. 3.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 3.100 / 52. 3.100
Splitting the commandline.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Reading option '-i' ... matched as input file with argument 'rtsp://admin:admin@192.168.4.3:554/0'.
Reading option '-acodec' ... matched as option 'acodec' (force audio codec ('copy' to copy stream)) with argument 'libmp3lame'.
Reading option '-ar' ... matched as option 'ar' (set audio sampling rate (in Hz)) with argument '22050'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'copy'.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'flv'.
Reading option '/dev/null' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument debug.
Applying option y (overwrite output files) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input file rtsp://admin:admin@192.168.4.3:554/0.
Successfully parsed a group of options.
Opening an input file: rtsp://admin:admin@192.168.4.3:554/0.
[rtsp @ 0x9d9ccc0] SDP:
v=0
o=StreamingServer 3331435948 1116907222000 IN IP4 192.168.4.3
s=h264.mp4
c=IN IP4 0.0.0.0
t=0 0
a=control:*
m=video 0 RTP/AVP 96
a=control:trackID=0
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z0LgHtoCgPRA,aM4wpIA=
m=audio 0 RTP/AVP 0
a=control:trackID=1
a=rtpmap:0 PCMU/8000
a=ptime:20
m=application 0 RTP/AVP 107
a=control:trackID=2
a=rtpmap:107 vnd.onvif.metadata/90000
[rtsp @ 0x9d9ccc0] video codec set to: h264
[NULL @ 0x9d9f400] RTP Packetization Mode: 1
[NULL @ 0x9d9f400] Extradata set to 0x9d9f900 (size: 22)!
[rtsp @ 0x9d9ccc0] audio codec set to: pcm_mulaw
[rtsp @ 0x9d9ccc0] audio samplerate set to: 8000
[rtsp @ 0x9d9ccc0] audio channels set to: 1
[rtsp @ 0x9d9ccc0] hello state=0
[h264 @ 0x9d9f400] Current profile doesn't provide more RBSP data in PPS, skipping
Last message repeated 1 times
[rtsp @ 0x9d9ccc0] All info found
Guessed Channel Layout for Input Stream #0.1 : mono
Input #0, rtsp, from 'rtsp://admin:admin@192.168.4.3:554/0':
Metadata:
title : h264.mp4
Duration: N/A, start: 0.000000, bitrate: 64 kb/s
Stream #0:0, 28, 1/90000: Video: h264 (Constrained Baseline), yuv420p, 640x480, 1/180000, 10 tbr, 90k tbn, 180k tbc
Stream #0:1, 156, 1/8000: Audio: pcm_mulaw, 8000 Hz, mono, s16, 64 kb/s
Successfully opened the file.
Parsing a group of options: output file /dev/null.
Applying option acodec (force audio codec ('copy' to copy stream)) with argument libmp3lame.
Applying option ar (set audio sampling rate (in Hz)) with argument 22050.
Applying option vcodec (force video codec ('copy' to copy stream)) with argument copy.
Applying option f (force format) with argument flv.
Successfully parsed a group of options.
Opening an output file: /dev/null.
Successfully opened the file.
detected 2 logical cores
[graph 0 input from stream 0:1 @ 0x9f15380] Setting 'time_base' to value '1/8000'
[graph 0 input from stream 0:1 @ 0x9f15380] Setting 'sample_rate' to value '8000'
[graph 0 input from stream 0:1 @ 0x9f15380] Setting 'sample_fmt' to value 's16'
[graph 0 input from stream 0:1 @ 0x9f15380] Setting 'channel_layout' to value '0x4'
[graph 0 input from stream 0:1 @ 0x9f15380] tb:1/8000 samplefmt:s16 samplerate:8000 chlayout:0x4
[audio format for output stream 0:1 @ 0x9efa7c0] Setting 'sample_fmts' to value 's32p|fltp|s16p'
[audio format for output stream 0:1 @ 0x9efa7c0] Setting 'sample_rates' to value '22050'
[audio format for output stream 0:1 @ 0x9efa7c0] Setting 'channel_layouts' to value '0x4|0x3'
[audio format for output stream 0:1 @ 0x9efa7c0] auto-inserting filter 'auto-inserted resampler 0' between the filter 'Parsed_anull_0' and the filter 'audio format for output stream 0:1'
[AVFilterGraph @ 0x9f15980] query_formats: 4 queried, 9 merged, 3 already done, 0 delayed
[auto-inserted resampler 0 @ 0x9dfada0] ch:1 chl:mono fmt:s16 r:8000Hz -> ch:1 chl:mono fmt:s16p r:22050Hz
Output #0, flv, to '/dev/null':
Metadata:
title : h264.mp4
encoder : Lavf55.12.100
Stream #0:0, 0, 1/1000: Video: h264 ([7][0][0][0] / 0x0007), yuv420p, 640x480, 1/90000, q=2-31, 1k tbn, 90k tbc
Stream #0:1, 0, 1/1000: Audio: mp3 (libmp3lame) ([2][0][0][0] / 0x0002), 22050 Hz, mono, s16p
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (pcm_mulaw -> libmp3lame)
Press [q] to stop, [?] for help
Current profile doesn't provide more RBSP data in PPS, skippingrate= 135.4kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 134.4kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 135.0kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 135.5kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 136.9kbits/s
Queue input is backward in time= 233kB time=00:00:13.69 bitrate= 139.4kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 136.3kbits/s
[flv @ 0x9de1200] Non-monotonous DTS in output stream 0:1; previous: 14239, current: 13926; changing to 14239. This may result in incorrect timestamps in the output file.
[flv @ 0x9de1200] Non-monotonous DTS in output stream 0:1; previous: 14239, current: 13952; changing to 14239. This may result in incorrect timestamps in the output file.
[flv @ 0x9de1200] Non-monotonous DTS in output stream 0:1; previous: 14239, current: 13979; changing to 14239. This may result in incorrect timestamps in the output file.
[flv @ 0x9de1200] Non-monotonous DTS in output stream 0:1; previous: 14239, current: 14005; changing to 14239. This may result in incorrect timestamps in the output file.
[flv @ 0x9de1200] Non-monotonous DTS in output stream 0:1; previous: 14239, current: 14031; changing to 14239. This may result in incorrect timestamps in the output file.
[flv @ 0x9de1200] Non-monotonous DTS in output stream 0:1; previous: 14239, current: 14057; changing to 14239. This may result in incorrect timestamps in the output file.
[flv @ 0x9de1200] Non-monotonous DTS in output stream 0:1; previous: 14239, current: 14083; changing to 14239. This may result in incorrect timestamps in the output file.
[flv @ 0x9de1200] Non-monotonous DTS in output stream 0:1; previous: 14239, current: 14109; changing to 14239. This may result in incorrect timestamps in the output file.
[flv @ 0x9de1200] Non-monotonous DTS in output stream 0:1; previous: 14239, current: 14135; changing to 14239. This may result in incorrect timestamps in the output file.
[flv @ 0x9de1200] Non-monotonous DTS in output stream 0:1; previous: 14239, current: 14161; changing to 14239. This may result in incorrect timestamps in the output file.
[flv @ 0x9de1200] Non-monotonous DTS in output stream 0:1; previous: 14239, current: 14188; changing to 14239. This may result in incorrect timestamps in the output file.
[flv @ 0x9de1200] Non-monotonous DTS in output stream 0:1; previous: 14239, current: 14214; changing to 14239. This may result in incorrect timestamps in the output file.
Current profile doesn't provide more RBSP data in PPS, skippingrate= 141.5kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 142.0kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 142.5kbits/s
Receiver Report delay: 469789, gettime: -1527669086, last_recep: 322446, timebase: -1534837492
Current profile doesn't provide more RBSP data in PPS, skippingrate= 141.5kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 141.7kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 141.1kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 140.6kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 140.7kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 139.9kbits/s
Receiver Report delay: 132993, gettime: -1516538925, last_recep: 322446, timebase: -1518568234
Current profile doesn't provide more RBSP data in PPS, skippingrate= 139.6kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 139.6kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 139.7kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 139.4kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 140.0kbits/s
Receiver Report delay: 897727, gettime: -1504870331, last_recep: 322446, timebase: -1518568552
[NULL @ 0x9d9f400] Current profile doesn't provide more RBSP data in PPS, skipping
Current profile doesn't provide more RBSP data in PPS, skippingrate= 139.4kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 139.1kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 139.0kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 139.0kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 138.6kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 138.5kbits/s
Current profile doesn't provide more RBSP data in PPS, skippingrate= 138.2kbits/s
EOF on sink link output stream 0:1:default.time=00:00:58.40 bitrate= 139.6kbits/s
No more output streams to write to, finishing.
[libmp3lame @ 0x9dfa580] Trying to remove 344 more samples than there are in the queue
frame= 589 fps= 11 q=-1.0 Lsize= 1003kB time=00:00:58.85 bitrate= 139.5kbits/s
video:724kB audio:231kB subtitle:0 global headers:0kB muxing overhead 4.955356%
2959 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x9e021c0] Statistics: 3 seeks, 2860 writeouts
[root@localhost ffmpeg]# -
ffmpeg - extract timecode start metadata from tmcd track to a drawtext filter
3 mars 2015, par mwjbI have a Quicktime file with a timecode track. I’m encoding it to a new video codec and would like to burnin the timecode from timecode track. Setting the timecode manually isn’t an option as this will be used for many files with unique starting timecodes.
This is the current work-in-progress ffmpeg command. Obviously I need to find a way to extract the metadate:timecode value and have this start the timecode count instead of the manual entry seen below :
ffmpeg -i infile.mov -y -c:v mjpeg -qscale:v 4 -vendor ap10 -pix_fmt yuvj422p -s 1280x720 -vf drawtext="fontfile=thefont.ttf: timecode='01\:00\:00\:00': rate=24: fontsize=40: fontcolor=white: boxcolor=black: box=1: x=1700: y=80" outfile.movThe Timecode metadata is there in the Stream #0:1 track, as read by ffmpeg :
ffmpeg version 2.5.2 Copyright (c) 2000-2014 the FFmpeg developers
built on Jan 1 2015 20:24:48 with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
configuration: --prefix=/Volumes/tempdisk/sw --as=yasm --enable-gpl --enable-pthreads --disable-ffplay --disable-ffserver --disable-shared --enable-static --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-libxvid --enable-zlib --enable-avfilter --enable-fontconfig --enable-libfreetype --enable-libass --enable-libutvideo --enable-filters --enable-postproc --enable-runtime-cpudetect
libavutil 54. 15.100 / 54. 15.100
libavcodec 56. 13.100 / 56. 13.100
libavformat 56. 15.102 / 56. 15.102
libavdevice 56. 3.100 / 56. 3.100
libavfilter 5. 2.103 / 5. 2.103
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'infile.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2015-03-02 22:06:00
timecode : 06:00:00:00
Duration: 00:20:00.00, start: 0.000000, bitrate: 36175 kb/s
Stream #0:0(eng): Video: dnxhd (AVdn / 0x6E645641), yuv422p, 1920x1080, 36175 kb/s, 24 fps, 24 tbr, 24k tbn, 24k tbc (default)
Metadata:
creation_time : 2015-03-02 22:06:00
handler_name : Apple Alias Data Handler
encoder : Avid DNxHD Codec
Stream #0:1(eng): Data: none (tmcd / 0x64636D74) (default)
Metadata:
creation_time : 2015-03-02 22:06:58
handler_name : Apple Alias Data Handler
timecode : 06:00:00:00I came across this post ffmpeg and timecode from movie metadata which appeared to be on the same sort of track as I’m on. Would certainly appreciate some guidance on this. Many Thanks.
-
ffmpeg crashes on crossfades between 3 clips if 2 clips coming from same input file [closed]
14 avril 2020, par ErikI observed that ffmpeg 4.2.2 (macOS) crashes in particular cases of crossfades between clips, if one clip comes from file
1.dv, and two clips are cut out of file2.dv, as shown below :


ffmpeg -f lavfi -i color=black:size=720x576:duration=11:rate=25 -i 1.dv -i 2.dv -filter_complex "\
 [1:v]trim=5:10,setpts=expr=PTS-STARTPTS,yadif,fade=alpha=1:d=2:st=3:type=out,setpts=expr=PTS-STARTPTS,fifo[s5];\
 [2:v]split=2[s7][s8];\
 [s7]trim=5:10,setpts=expr=PTS-STARTPTS,yadif,fade=alpha=1:d=2:type=in,fade=alpha=1:d=2:st=6:type=out,setpts=expr=PTS-STARTPTS+(3/TB),fifo[s15];\
 [s8]trim=12:17,setpts=expr=PTS-STARTPTS,yadif,fade=alpha=1:d=2:type=in,setpts=expr=PTS-STARTPTS+(6/TB),fifo[s22];\
 [0:v][s5]overlay=eof_action=repeat[s6];\
 [s6][s15]overlay=eof_action=repeat[s16];\
 [s16][s22]overlay=eof_action=repeat[s24];\
 [1:a]atrim=5:10,asetpts=expr=PTS-STARTPTS[s26];\
 [2:a]asplit=2[s27][s28];\
 [s27]atrim=5:10,asetpts=expr=PTS-STARTPTS[s30];\
 [s28]atrim=12:17,asetpts=expr=PTS-STARTPTS[s33];\
 [s26][s30]acrossfade=d=2[s31];\
 [s31][s33]acrossfade=d=2[s36]" \
 -map "[s24]" -map "[s36]" -ab 128k -acodec aac -crf 23 -movflags faststart -preset medium -tune film -vcodec libx264 -aspect 1024:576 out.mp4 -y



The order makes a difference : if the two clips from
2.dvare used first and then the clip from1.dvis appended, everything works fine. Also, if all clips are coming from different files.


ffmpeg 3.4.6 (ubuntu 18.04) shows no issues in any case.



A self-compiled ffmpeg version N-97322-gb1699f4 (commit 2020-04-13) works with short clips as above, but crashes if one of the two clips taken from
2.dvis getting longer. In my tests 1500 frames (64 sec) is OK, 1700 (68 sec) leads to a segmentation fault. That is, if you replace in the command line above :


- 

[s7]trim=5:10...->[s7]trim=0:68and accordingly[s27]atrim=5:10...->[s27]atrim=0:68







Interestingly, the length of the clip taken from
1.dvdoes not play a role.


The ffmpeg output shows about 20 times :



frame= 0 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x 



before it continues (seg fault case) :



frame= 4 fps=0.3 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x 
frame= 24 fps=1.6 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x 
frame= 25 fps=1.5 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x 
frame= 34 fps=1.9 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x 
frame= 36 fps=2.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x 
frame= 39 fps=2.1 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x 
frame= 40 fps=2.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x 
frame= 40 fps=2.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x 
frame= 40 fps=1.9 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x 




success case :



frame= 5 fps=0.4 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x 
frame= 42 fps=3.2 q=28.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x 
frame= 53 fps=3.9 q=28.0 size= 0kB time=00:00:00.36 bitrate= 2.9kbits/s speed=0.0264x 
frame= 65 fps=4.6 q=28.0 size= 0kB time=00:00:00.84 bitrate= 1.2kbits/s speed=0.0594x 
... 



Slightly older versions included in the newest MacOS builds from zeranoe.com (git-2020-04-13-59e3a9a) and evermeet.cx (N-97308-g14dd0a9057-tessus, from 2020-04-12) are working nicely - also on my production cases (longer clips).



Any feedback would be appreciated !