Recherche avancée

Médias (91)

Autres articles (60)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

Sur d’autres sites (6882)

  • How to make that video module can generate readable files for the module JW Player ?

    4 janvier 2015, par Dvex

    I use Drupal 7.x with Video Module, Video Pressets for FFMPEG and JW Player.
    I install FFMPEG with this Guide : https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu in Ubuntu 14.04

    I’m using jQuery 1.8

    I downloaded the files that the JW Player module requires and renamed some files, as the guide tells me.

    I set the video module so you can use FFMPEG and established the necessary pressets (FLV, MP4 and WebM) for any browser (web and mobile).

    I changed the default settings of these pressets. I put check the option : Force one-pass Encoding. Because if not me error message :

    PHPVideoToolkit error: Execute error. It was not possible to encode "/var/www/html/sites/default/files/private/videos/original/reel para web en loop_2.mp4" as FFmpeg returned an error. Note, however the error was encountered on the second pass of the encoding process and the first pass appear to go fine. The error is with the video codec of the input file. FFmpeg reports the error to be "Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height".

    /usr/bin/ffmpeg -i '/var/www/html/sites/default/files/private/videos/original/reel para web en loop_2.mp4' -strict experimental -vcodec 'h264' -acodec 'aac' -vprofile 'baseline' -ac '2' -pass '1' -passlogfile '/tmp/1420389438-54a96c3eda9fc-multipass'  -y /tmp/1420389438-54a96c3eda8c1.mp4
    ffmpeg version 1.2.6-7:1.2.6-1~trusty1 Copyright (c) 2000-2014 the FFmpeg developers
     built on Apr 26 2014 18:52:58 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
     configuration: --arch=amd64 --disable-stripping --enable-avresample --enable-pthreads --enable-runtime-cpudetect --extra-version='7:1.2.6-1~trusty1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
     libavutil      52. 18.100 / 52. 18.100
     libavcodec     54. 92.100 / 54. 92.100
     libavformat    54. 63.104 / 54. 63.104
     libavdevice    53.  5.103 / 53.  5.103
     libavfilter     3. 42.103 /  3. 42.103
     libswscale      2.  2.100 /  2.  2.100
     libswresample   0. 17.102 /  0. 17.102
     libpostproc    52.  2.100 / 52.  2.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/var/www/html/sites/default/files/private/videos/original/reel para web en loop_2.mp4':
     Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp42mp41
       creation_time   : 2013-09-12 17:30:22
     Duration: 00:00:39.32, start: 0.000000, bitrate: 3190 kb/s
       Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 720x480 [SAR 40:33 DAR 20:11], 2991 kb/s, 29.97 fps, 29.97 tbr, 29970 tbn, 59.94 tbc
       Metadata:
         creation_time   : 2013-09-12 17:30:22
         handler_name    : Mainconcept MP4 Video Media Handler
       Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 189 kb/s
       Metadata:
         creation_time   : 2013-09-12 17:30:22
         handler_name    : Mainconcept MP4 Sound Media Handler
    [libx264 @ 0x164dec0] using SAR=40/33
    [libx264 @ 0x164dec0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    [libx264 @ 0x164dec0] profile Constrained Baseline, level 3.0
    [libx264 @ 0x164dec0] 264 - core 142 r2389 956c8d8 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=1:0:0 analyse=0x1:0 me=dia subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to '/tmp/1420389438-54a96c3eda8c1.mp4':
     Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp42mp41
       encoder         : Lavf54.63.104
       Stream #0:0(eng): Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 720x480 [SAR 40:33 DAR 20:11], q=-1--1, pass 1, 11988 tbn, 29.97 tbc
       Metadata:
         creation_time   : 2013-09-12 17:30:22
         handler_name    : Mainconcept MP4 Video Media Handler
       Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 128 kb/s
       Metadata:
         creation_time   : 2013-09-12 17:30:22
         handler_name    : Mainconcept MP4 Sound Media Handler
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 -> libx264)
     Stream #0:1 -> #0:1 (aac -> aac)
    Press [q] to stop, [?] for help
    frame=   88 fps=0.0 q=29.0 size=     483kB time=00:00:02.96 bitrate=1335.6kbits/s dup=1 drop=0    
    frame=  190 fps=189 q=29.0 size=    1916kB time=00:00:06.33 bitrate=2477.6kbits/s dup=1 drop=0    
    frame=  289 fps=192 q=29.0 size=    3001kB time=00:00:09.64 bitrate=2549.5kbits/s dup=1 drop=0    
    frame=  395 fps=196 q=29.0 size=    3732kB time=00:00:13.31 bitrate=2296.7kbits/s dup=1 drop=0    
    frame=  495 fps=197 q=29.0 size=    4481kB time=00:00:16.66 bitrate=2203.1kbits/s dup=1 drop=0    
    frame=  591 fps=196 q=29.0 size=    5152kB time=00:00:19.98 bitrate=2111.4kbits/s dup=1 drop=0    
    frame=  690 fps=196 q=29.0 size=    6329kB time=00:00:23.01 bitrate=2252.4kbits/s dup=1 drop=0    
    frame=  790 fps=197 q=29.0 size=    7184kB time=00:00:26.32 bitrate=2235.6kbits/s dup=1 drop=0    
    frame=  890 fps=197 q=29.0 size=    8532kB time=00:00:29.73 bitrate=2350.3kbits/s dup=1 drop=0    
    frame= 1000 fps=199 q=29.0 size=    9398kB time=00:00:33.42 bitrate=2303.0kbits/s dup=1 drop=0    
    frame= 1106 fps=200 q=29.0 size=   10423kB time=00:00:37.01 bitrate=2306.8kbits/s dup=1 drop=0    
    frame= 1178 fps=199 q=-1.0 Lsize=   11404kB time=00:00:39.31 bitrate=2376.1kbits/s dup=1 drop=0
    video:10752kB audio:618kB subtitle:0 global headers:0kB muxing overhead 0.302603%
    [libx264 @ 0x164dec0] frame I:87    Avg QP:24.23  size: 21823
    [libx264 @ 0x164dec0] frame P:1091  Avg QP:25.90  size:  8351
    [libx264 @ 0x164dec0] mb I  I16..4: 50.9%  0.0% 49.1%
    [libx264 @ 0x164dec0] mb P  I16..4: 14.8%  0.0%  0.0%  P16..4: 51.3%  0.0%  0.0%  0.0%  0.0%    skip:33.9%
    [libx264 @ 0x164dec0] coded y,uvDC,uvAC intra: 43.9% 38.7% 10.2% inter: 23.0% 14.4% 0.8%
    [libx264 @ 0x164dec0] i16 v,h,dc,p: 31% 39% 19% 11%
    [libx264 @ 0x164dec0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 44% 14%  5%  4%  4%  4%  4%  4%
    [libx264 @ 0x164dec0] i8c dc,h,v,p: 57% 22% 17%  4%
    [libx264 @ 0x164dec0] kb/s:2240.77
    /usr/bin/ffmpeg -i '/var/www/html/sites/default/files/private/videos/original/reel para web en loop_2.mp4' -strict experimental -vcodec 'h264' -acodec 'aac' -vprofile 'baseline' -ac '2' -pass '2' -passlogfile '/tmp/1420389438-54a96c3eda9fc-multipass'  -y /tmp/1420389438-54a96c3eda8c1.mp4
    ffmpeg version 1.2.6-7:1.2.6-1~trusty1 Copyright (c) 2000-2014 the FFmpeg developers
     built on Apr 26 2014 18:52:58 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
     configuration: --arch=amd64 --disable-stripping --enable-avresample --enable-pthreads --enable-runtime-cpudetect --extra-version='7:1.2.6-1~trusty1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
     libavutil      52. 18.100 / 52. 18.100
     libavcodec     54. 92.100 / 54. 92.100
     libavformat    54. 63.104 / 54. 63.104
     libavdevice    53.  5.103 / 53.  5.103
     libavfilter     3. 42.103 /  3. 42.103
     libswscale      2.  2.100 /  2.  2.100
     libswresample   0. 17.102 /  0. 17.102
     libpostproc    52.  2.100 / 52.  2.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/var/www/html/sites/default/files/private/videos/original/reel para web en loop_2.mp4':
     Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp42mp41
       creation_time   : 2013-09-12 17:30:22
     Duration: 00:00:39.32, start: 0.000000, bitrate: 3190 kb/s
       Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 720x480 [SAR 40:33 DAR 20:11], 2991 kb/s, 29.97 fps, 29.97 tbr, 29970 tbn, 59.94 tbc
       Metadata:
         creation_time   : 2013-09-12 17:30:22
         handler_name    : Mainconcept MP4 Video Media Handler
       Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 189 kb/s
       Metadata:
         creation_time   : 2013-09-12 17:30:22
         handler_name    : Mainconcept MP4 Sound Media Handler
    [libx264 @ 0x161eec0] using SAR=40/33
    [libx264 @ 0x161eec0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    [libx264 @ 0x161eec0] constant rate-factor is incompatible with 2pass.
    Output #0, mp4, to '/tmp/1420389438-54a96c3eda8c1.mp4':
     Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp42mp41
       Stream #0:0(eng): Video: h264, yuv420p, 720x480 [SAR 40:33 DAR 20:11], q=-1--1, pass 2, 90k tbn, 29.97 tbc
       Metadata:
         creation_time   : 2013-09-12 17:30:22
         handler_name    : Mainconcept MP4 Video Media Handler
       Stream #0:1(eng): Audio: none, 48000 Hz, stereo, fltp, 128 kb/s
       Metadata:
         creation_time   : 2013-09-12 17:30:22
         handler_name    : Mainconcept MP4 Sound Media Handler
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 -> libx264)
     Stream #0:1 -> #0:1 (aac -> aac)
    Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

    When I save a node and add its corresponding video, the module generates the 3 files with their respective formats. But when thrown at the JW Player module, only plays FLV in every browser.
    But not the MP4 or WebM.

    I checked the log and status report and all I get in order.

    So I assume that the MP4 and WebM formats generated are not what the JW Player waiting.

    Does anyone have the solution to this problem ? I tried to recompile FFMPEG with more codecs but it does not solve the problem.

    This is my FFMPEG Configuration :

    ffmpeg version 1.2.6-1~trusty1 Copyright (c) 2000-2014 the FFmpeg developers
     built on Apr 26 2014 18:52:58 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
     configuration: --arch=amd64 --disable-stripping --enable-avresample --enable-pthreads --enable-runtime-cpudetect --extra-version='7:1.2.6-1~trusty1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
  • ffmpeg - Adding audio to a complex filter

    9 janvier 2015, par user3630651

    I am using c# to programmatically write an ffmpeg command to crossfade a logo into a video. I also need to cut a couple of seconds into the video.

    Here is the currently working ffmpeg command :
    (No audio)

    -y -loop 1 -t 3.2 -i "logo.png" -i "video.mp4" -r 29.97 -f lavfi -i color=black -filter_complex "
    [0:v] scale=640:-1, crop=640:360, format=pix_fmts=yuv420p, fade=t=out:st=2.7:d=0.5:alpha=1, setpts=PTS-STARTPTS [va0];
    [1:v] format=pix_fmts=yuv420p, fade=t=in:st=0:d=0.5:alpha=1, setpts=PTS-STARTPTS + 3.2 / TB [va1];
    [2:v] scale=640:-1, crop=640:360, trim=duration=147.768 [over];
    [over][va0] overlay [over1];
    [over1][va1] overlay=format=yuv420 [outv]
    " -vcodec libx264 -map [outv] "Finished.mp4"

    I want to add audio from "video.mp4"([1:a]) to the output starting a few seconds in, how do I go about this without causing a buffer overflow ?

    Thank you for your help in advance !


    Edit, Adding ffmpeg output on request :

    ffmpeg version N-66012-g97b8809 Copyright (c) 2000-2014 the FFmpeg developers
     built on Sep  1 2014 00:21:15 with gcc 4.8.3 (GCC)
     configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-decklink --enable-zlib
     libavutil      54.  7.100 / 54.  7.100
     libavcodec     56.  1.100 / 56.  1.100
     libavformat    56.  3.100 / 56.  3.100
     libavdevice    56.  0.100 / 56.  0.100
     libavfilter     5.  0.103 /  5.  0.103
     libswscale      3.  0.100 /  3.  0.100
     libswresample   1.  1.100 /  1.  1.100
     libpostproc    53.  0.100 / 53.  0.100
    Input #0, image2, from 'C:\VideoApplicationAssets\test\logo.png':
     Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
       Stream #0:0: Video: png, rgba, 500x400 [SAR 9065:9065 DAR 5:4], 25 fps, 25 tbr, 25 tbn, 25 tbc
    Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\VideoApplicationAssets\test\2.mp4':
     Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: isommp42
       creation_time   : 2014-03-07 04:36:36
     Duration: 00:02:24.68, start: 0.000000, bitrate: 574 kb/s
       Stream #1:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 475 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #1:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 96 kb/s (default)
       Metadata:
         creation_time   : 2014-03-07 04:36:36
         handler_name    : IsoMedia File Produced by Google, 5-11-2011
    Input #2, lavfi, from 'color=black':
     Duration: N/A, start: 0.000000, bitrate: N/A
       Stream #2:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
    [libx264 @ 000000000049cf60] using SAR=1/1
    [libx264 @ 000000000049cf60] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    [libx264 @ 000000000049cf60] profile High, level 3.0
    [libx264 @ 000000000049cf60] 264 - core 142 r2479 dd79a61 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to 'C:\VideoApplicationAssets\test\Finished.mp4':
     Metadata:
       encoder         : Lavf56.3.100
       Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 640x360 [SAR 1:1 DAR 16:9], q=-1--1, 29.97 fps, 11988 tbn, 29.97 tbc (default)
       Metadata:
         encoder         : Lavc56.1.100 libx264
    Stream mapping:
     Stream #0:0 (png) -> scale
     Stream #1:0 (h264) -> format
     Stream #2:0 (rawvideo) -> scale
     overlay -> Stream #0:0 (libx264)
    Press [q] to stop, [?] for help
    frame=  149 fps=0.0 q=29.0 size=      23kB time=00:00:03.23 bitrate=  57.6kbits/s    
    frame=  240 fps=239 q=29.0 size=     200kB time=00:00:06.27 bitrate= 260.6kbits/s    
    frame=  345 fps=229 q=29.0 size=     343kB time=00:00:09.77 bitrate= 287.2kbits/s    
    frame=  431 fps=215 q=29.0 size=     496kB time=00:00:12.64 bitrate= 321.1kbits/s    
    frame=  502 fps=200 q=29.0 size=     633kB time=00:00:15.01 bitrate= 345.5kbits/s    
    frame=  659 fps=219 q=29.0 size=     737kB time=00:00:20.25 bitrate= 298.0kbits/s    
    frame=  843 fps=240 q=26.0 size=     790kB time=00:00:26.39 bitrate= 245.1kbits/s    
    frame=  988 fps=246 q=29.0 size=     982kB time=00:00:31.23 bitrate= 257.7kbits/s    
    frame= 1124 fps=249 q=29.0 size=    1200kB time=00:00:35.76 bitrate= 274.9kbits/s    
    frame= 1292 fps=257 q=29.0 size=    1410kB time=00:00:41.37 bitrate= 279.3kbits/s    
    frame= 1437 fps=260 q=29.0 size=    1773kB time=00:00:46.21 bitrate= 314.2kbits/s    
    frame= 1565 fps=260 q=29.0 size=    2206kB time=00:00:50.48 bitrate= 358.0kbits/s    
    frame= 1709 fps=262 q=29.0 size=    2542kB time=00:00:55.28 bitrate= 376.7kbits/s    
    frame= 1872 fps=266 q=29.0 size=    2920kB time=00:01:00.72 bitrate= 393.9kbits/s    
    frame= 2000 fps=265 q=29.0 size=    3157kB time=00:01:04.99 bitrate= 397.9kbits/s    
    frame= 2108 fps=262 q=29.0 size=    3378kB time=00:01:08.60 bitrate= 403.4kbits/s    
    frame= 2196 fps=257 q=29.0 size=    3592kB time=00:01:11.53 bitrate= 411.4kbits/s    
    frame= 2291 fps=254 q=29.0 size=    3791kB time=00:01:14.70 bitrate= 415.7kbits/s    
    frame= 2394 fps=251 q=29.0 size=    4013kB time=00:01:18.14 bitrate= 420.7kbits/s    
    frame= 2492 fps=248 q=29.0 size=    4191kB time=00:01:21.41 bitrate= 421.7kbits/s    
    frame= 2670 fps=253 q=29.0 size=    4323kB time=00:01:27.35 bitrate= 405.4kbits/s    
    frame= 2829 fps=256 q=29.0 size=    4437kB time=00:01:32.65 bitrate= 392.3kbits/s    
    frame= 2972 fps=257 q=29.0 size=    4749kB time=00:01:37.43 bitrate= 399.3kbits/s    
    frame= 3143 fps=261 q=29.0 size=    5016kB time=00:01:43.13 bitrate= 398.4kbits/s    
    frame= 3247 fps=259 q=29.0 size=    5430kB time=00:01:46.60 bitrate= 417.3kbits/s    
    frame= 3396 fps=260 q=29.0 size=    5737kB time=00:01:51.57 bitrate= 421.2kbits/s    
    frame= 3544 fps=262 q=29.0 size=    5995kB time=00:01:56.51 bitrate= 421.5kbits/s    
    frame= 3691 fps=263 q=29.0 size=    6251kB time=00:02:01.42 bitrate= 421.7kbits/s    
    frame= 3880 fps=267 q=29.0 size=    6342kB time=00:02:07.72 bitrate= 406.7kbits/s    
    frame= 4059 fps=270 q=29.0 size=    6426kB time=00:02:13.70 bitrate= 393.7kbits/s    
    frame= 4158 fps=267 q=29.0 size=    6699kB time=00:02:17.00 bitrate= 400.5kbits/s    
    frame= 4309 fps=268 q=29.0 size=    6911kB time=00:02:22.04 bitrate= 398.6kbits/s    
    frame= 4388 fps=265 q=29.0 size=    7187kB time=00:02:24.67 bitrate= 407.0kbits/s    
    frame= 4430 fps=260 q=-1.0 Lsize=    7537kB time=00:02:27.74 bitrate= 417.9kbits/s dup=0 drop=2    

    video:7491kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.618146%
    [libx264 @ 000000000049cf60] frame I:40    Avg QP:18.78  size: 22979
    [libx264 @ 000000000049cf60] frame P:1964  Avg QP:22.33  size:  3056
    [libx264 @ 000000000049cf60] frame B:2426  Avg QP:27.35  size:   309
    [libx264 @ 000000000049cf60] consecutive B-frames: 24.5%  5.1%  6.6% 63.7%
    [libx264 @ 000000000049cf60] mb I  I16..4: 19.5% 35.8% 44.7%
    [libx264 @ 000000000049cf60] mb P  I16..4:  4.1%  5.7%  2.0%  P16..4: 24.4%  6.9%  2.5%  0.0%  0.0%    skip:54.5%
    [libx264 @ 000000000049cf60] mb B  I16..4:  0.3%  0.2%  0.1%  B16..8: 11.1%  0.7%  0.1%  direct: 0.4%  skip:87.0%  L0:44.2% L1:52.6% BI: 3.2%
    [libx264 @ 000000000049cf60] 8x8 transform intra:45.7% inter:56.0%
    [libx264 @ 000000000049cf60] coded y,uvDC,uvAC intra: 45.5% 44.9% 11.1% inter: 5.9% 6.3% 0.4%
    [libx264 @ 000000000049cf60] i16 v,h,dc,p: 24% 39% 14% 23%
    [libx264 @ 000000000049cf60] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 28% 24% 24%  3%  4%  4%  5%  3%  4%
    [libx264 @ 000000000049cf60] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 26% 14%  5%  7%  7%  7%  5%  6%
    [libx264 @ 000000000049cf60] i8c dc,h,v,p: 57% 22% 17%  4%
    [libx264 @ 000000000049cf60] Weighted P-Frames: Y:6.6% UV:4.4%
    [libx264 @ 000000000049cf60] ref P L0: 79.1% 10.7%  8.3%  1.9%  0.1%
    [libx264 @ 000000000049cf60] ref B L0: 92.1%  7.3%  0.7%
    [libx264 @ 000000000049cf60] ref B L1: 94.8%  5.2%
    [libx264 @ 000000000049cf60] kb/s:415.11
  • FFmpegFrameGrabber video artefacts from RTSP network camera

    2 février 2015, par UncleChris

    I’m using JavaCV FFmpegFrameGrabber to grab frames from my network camera through RTSP protocol. Simplified code looks like this :

    /* from ini method */
    // url like: rtsp://ip:port/stream1
    grabber = new FFmpegFrameGrabber(stream.getUrl());
    // type: RTP
    grabber.setFormat(stream.getMediaType());
    grabber.start();

    /* it's called in while loop from outside */
    public void grab() throws FrameProcessorsException {

       try {
           LOGGER.info(grabber.getFrameNumber());
           frame = grabber.grab();
       } catch (FrameGrabber.Exception e) {
           throw new FrameProcessorsException(e);
       }

       // I save my frames to other grabber, to make mp4 file to watch it later
       try {
           videoRecorder.recordFrame(frame, grabber.getTimestamp(), grabber.getImageWidth(), grabber.getImageHeight(), grabber.getAudioChannels());
       } catch (FrameRecorder.Exception e) {
           throw new FrameProcessorsException(e);
       }

       // my processing, the troublemaker
       long currentFrameNum = grabber.getFrameNumber();
       if (processing && currentFrameNum - lastFrameWithAnalysis >= PROCESS_FREQUENCY) {

           lastFrameWithAnalysis = currentFrameNum;

           Mat frameMat = new Mat(frame, false);
           try {
               LOGGER.info("Processing :" + grabber.getFrameNumber());
               AnalysisResult result = frameAnalyzer.processFrame(frameMat, (int) currentFrameNum);
               videoAnalysisSaver.saveFrameAnalysisResult(frameMat, result, (int) currentFrameNum);
           } catch (ServerErrorException | NotExistException e) {
               LOGGER.warn(e);
           }

    In code You can see processing variable. If it’s set to false, I can watch my network streams on page with no problems. But if I set it to true, suddenly, I got visual artefacts, looking like this :

    http://answers.opencv.org/upfiles/1400931120927032.png

    And also I can see some infos on my logs :

    [libx264 @ 0x7fe2a7e2ae00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    [libx264 @ 0x7fe2a7e2ae00] profile High, level 4.0
    [libx264 @ 0x7fe2a7e2ae00] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1,00:0,00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=400 ratetol=1,0 qcomp=0,60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1,40 aq=1:1,00
    [mp4 @ 0x7fe2909feee0] Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated. Set AVStream.time_base instead.
    2015-02-02 10:34:31,986 INFO  [img.StreamGrabber] 6
    2015-02-02 10:34:31,998 INFO  [img.StreamGrabber] Processing :1
    2015-02-02 10:34:32,881 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1524, 1564, 678, 718) is above threshold
    2015-02-02 10:34:32,882 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1538, 1577, 678, 717) is above threshold
    2015-02-02 10:34:32,884 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1320, 1420, 298, 398) is above threshold
    2015-02-02 10:34:33,199 INFO  [img.StreamGrabber] 1
    2015-02-02 10:34:33,212 INFO  [img.StreamGrabber] 2
    2015-02-02 10:34:33,222 INFO  [img.StreamGrabber] 3
    2015-02-02 10:34:33,232 INFO  [img.StreamGrabber] 4
    2015-02-02 10:34:33,244 INFO  [img.StreamGrabber] 5
    2015-02-02 10:34:33,255 INFO  [img.StreamGrabber] Processing :6
    2015-02-02 10:34:33,870 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1537, 1578, 678, 719) is above threshold
    2015-02-02 10:34:33,871 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1315, 1422, 298, 405) is above threshold
    2015-02-02 10:34:34,318 INFO  [img.StreamGrabber] 6
    2015-02-02 10:34:34,338 INFO  [img.StreamGrabber] 7
    2015-02-02 10:34:34,347 INFO  [img.StreamGrabber] 8
    2015-02-02 10:34:34,357 INFO  [img.StreamGrabber] 9
    2015-02-02 10:34:34,368 INFO  [img.StreamGrabber] 10
    2015-02-02 10:34:34,379 INFO  [img.StreamGrabber] Processing :11
    2015-02-02 10:34:35,025 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1561, 1618, 477, 534) is above threshold
    2015-02-02 10:34:35,027 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1318, 1421, 300, 403) is above threshold
    2015-02-02 10:34:35,185 INFO  [img.StreamGrabber] 11
    2015-02-02 10:34:35,202 INFO  [img.StreamGrabber] 12
    2015-02-02 10:34:35,213 INFO  [img.StreamGrabber] 13
    2015-02-02 10:34:35,223 INFO  [img.StreamGrabber] 14
    2015-02-02 10:34:35,235 INFO  [img.StreamGrabber] 15
    2015-02-02 10:34:35,286 INFO  [img.StreamGrabber] Processing :16
    2015-02-02 10:34:35,952 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1429, 1470, 703, 744) is above threshold
    2015-02-02 10:34:35,954 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1315, 1422, 295, 402) is above threshold
    2015-02-02 10:34:36,218 INFO  [img.StreamGrabber] 16
    2015-02-02 10:34:36,237 INFO  [img.StreamGrabber] 17
    2015-02-02 10:34:36,246 INFO  [img.StreamGrabber] 18
    2015-02-02 10:34:36,257 INFO  [img.StreamGrabber] 19
    2015-02-02 10:34:36,268 INFO  [img.StreamGrabber] 20
    2015-02-02 10:34:36,279 INFO  [img.StreamGrabber] Processing :21
    2015-02-02 10:34:36,967 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1562, 1616, 480, 534) is above threshold
    2015-02-02 10:34:36,968 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1314, 1420, 296, 402) is above threshold
    2015-02-02 10:34:37,186 INFO  [img.StreamGrabber] 21
    2015-02-02 10:34:37,206 INFO  [img.StreamGrabber] 22
    2015-02-02 10:34:37,217 INFO  [img.StreamGrabber] 23
    2015-02-02 10:34:37,227 INFO  [img.StreamGrabber] 24
    [h264 @ 0x7fe2915b30a0] RTP: missed 1514 packets
    [h264 @ 0x7fe2f1050ea0] Cannot use next picture in error concealment
    [h264 @ 0x7fe2f1050ea0] concealing 4608 DC, 4608 AC, 4608 MV errors in P frame
    2015-02-02 10:34:37,238 INFO  [img.StreamGrabber] 25
    2015-02-02 10:34:37,250 INFO  [img.StreamGrabber] Processing :26
    2015-02-02 10:34:37,944 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1562, 1616, 479, 533) is above threshold
    2015-02-02 10:34:37,945 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1315, 1422, 297, 404) is above threshold
    2015-02-02 10:34:38,107 INFO  [img.StreamGrabber] 26
    [h264 @ 0x7fe2915b30a0] RTP: missed 295 packets
    [h264 @ 0x7fe2a5713e00] Cannot use next picture in error concealment
    [h264 @ 0x7fe2a5713e00] concealing 1996 DC, 1996 AC, 1996 MV errors in P frame
    2015-02-02 10:34:38,120 INFO  [img.StreamGrabber] 27
    2015-02-02 10:34:38,130 INFO  [img.StreamGrabber] 28
    2015-02-02 10:34:38,143 INFO  [img.StreamGrabber] 29
    2015-02-02 10:34:38,231 INFO  [img.StreamGrabber] 30
    2015-02-02 10:34:38,249 INFO  [img.StreamGrabber] Processing :31
    2015-02-02 10:34:38,962 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1170, 1211, 322, 363) is above threshold
    2015-02-02 10:34:38,964 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1316, 1421, 298, 403) is above threshold
    2015-02-02 10:34:39,329 INFO  [img.StreamGrabber] 31
    [h264 @ 0x7fe2915b30a0] RTP: missed 232 packets
    [h264 @ 0x7fe2a4203d80] Cannot use next picture in error concealment
    [h264 @ 0x7fe2a4203d80] concealing 1142 DC, 1142 AC, 1142 MV errors in P frame
    2015-02-02 10:34:39,342 INFO  [img.StreamGrabber] 32
    2015-02-02 10:34:39,352 INFO  [img.StreamGrabber] 33
    [h264 @ 0x7fe2915b30a0] RTP: missed 1 packets
    [h264 @ 0x7fe2915b43c0] corrupted macroblock 86 67 (total_coeff=-1)
    [h264 @ 0x7fe2915b43c0] error while decoding MB 86 67
    [h264 @ 0x7fe2915b43c0] Cannot use next picture in error concealment
    [h264 @ 0x7fe2915b43c0] concealing 83 DC, 83 AC, 83 MV errors in P frame
    2015-02-02 10:34:39,362 INFO  [img.StreamGrabber] Processing :144
    2015-02-02 10:34:40,071 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1563, 1614, 480, 531) is above threshold
    2015-02-02 10:34:40,074 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1318, 1423, 296, 401) is above threshold
    2015-02-02 10:34:40,462 INFO  [img.StreamGrabber] 144
    2015-02-02 10:34:40,482 INFO  [img.StreamGrabber] 145
    [h264 @ 0x7fe2915b30a0] RTP: missed 377 packets
    [h264 @ 0x7fe2a515baa0] Cannot use next picture in error concealment
    [h264 @ 0x7fe2a515baa0] concealing 6822 DC, 6822 AC, 6822 MV errors in P frame
    2015-02-02 10:34:40,494 INFO  [img.StreamGrabber] Processing :167
    2015-02-02 10:34:41,222 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1563, 1615, 479, 531) is above threshold
    2015-02-02 10:34:41,230 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1319, 1421, 295, 397) is above threshold
    2015-02-02 10:34:41,930 INFO  [img.StreamGrabber] 167
    2015-02-02 10:34:41,947 INFO  [img.StreamGrabber] 168
    2015-02-02 10:34:41,958 INFO  [img.StreamGrabber] 169
    2015-02-02 10:34:41,970 INFO  [img.StreamGrabber] 170
    2015-02-02 10:34:41,985 INFO  [img.StreamGrabber] 171
    [h264 @ 0x7fe2915b30a0] RTP: missed 311 packets
    [h264 @ 0x7fe2f10506c0] Cannot use next picture in error concealment
    [h264 @ 0x7fe2f10506c0] concealing 1409 DC, 1409 AC, 1409 MV errors in P frame
    2015-02-02 10:34:41,997 INFO  [img.StreamGrabber] Processing :190
    2015-02-02 10:34:42,715 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1322, 1384, 340, 402) is above threshold
    2015-02-02 10:34:42,717 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1312, 1425, 290, 403) is above threshold
    2015-02-02 10:34:42,929 INFO  [img.StreamGrabber] 190
    [h264 @ 0x7fe2915b30a0] RTP: missed 13 packets
    [h264 @ 0x7fe2f1050ea0] Cannot use next picture in error concealment
    [h264 @ 0x7fe2f1050ea0] concealing 6489 DC, 6489 AC, 6489 MV errors in P frame
    2015-02-02 10:34:42,943 INFO  [img.StreamGrabber] 191
    [h264 @ 0x7fe2915b30a0] RTP: missed 484 packets
    [h264 @ 0x7fe2915b43c0] concealing 6609 DC, 6609 AC, 6609 MV errors in I frame
    2015-02-02 10:34:42,957 INFO  [img.StreamGrabber] 192
    2015-02-02 10:34:42,970 INFO  [img.StreamGrabber] 193
    [h264 @ 0x7fe2915b30a0] RTP: missed 313 packets
    [h264 @ 0x7fe2a51a0fc0] Cannot use next picture in error concealment
    [h264 @ 0x7fe2a51a0fc0] concealing 1666 DC, 1666 AC, 1666 MV errors in P frame
    2015-02-02 10:34:43,271 INFO  [img.StreamGrabber] 194
    2015-02-02 10:34:43,314 INFO  [img.StreamGrabber] Processing :249
    2015-02-02 10:34:44,099 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1322, 1384, 340, 402) is above threshold
    2015-02-02 10:34:44,100 INFO  [img.analysis.face.PersonFaceRecognizer] Predicted face (1313, 1403, 300, 390) is above threshold
    2015-02-02 10:34:45,473 INFO  [img.save.event.EventMaker] Creating 1 face recognition events
    2015-02-02 10:34:45,618 INFO  [core.task.StreamRecordingTaskExecutor] Stream recording task ended: rtsp://MYURL

    My guess is, that my computer is simply too busy to catch all packages from camera stream. I’m operating on two streams, one is low quality with like 3 fps, and other is 30. Of course problems show up all the time on fast one, and rarely on slow stream.
    I’m wondering if there is possibility to force somehow FFmpegFrameGraber not to create artifacts, but simply drop current frame and go to next one ? Fps and frame continuity is not so important. I was trying to use grabber’s setfps, settimestamp, delayedGrab method’s to somehow slow down 30-fps stream, but it didn’t even react to that. I’m sure I’m doing something wrong.

    I’ve found some topics related to my problem, but they did not helped me, maybe You will see more :
    http://answers.opencv.org/question/34012/ip-camera-h264-error-while-decoding/
    How to deal with cv::VideoCapture decode errors ?
    http://superuser.com/questions/663928/ffmpeg-to-capture-stills-from-h-264-stream

    Thank You for Your help.