Recherche avancée

Médias (2)

Mot : - Tags -/documentation

Autres articles (77)

  • Les thèmes de MediaSpip

    4 juin 2013

    3 thèmes sont proposés à l’origine par MédiaSPIP. L’utilisateur MédiaSPIP peut rajouter des thèmes selon ses besoins.
    Thèmes MediaSPIP
    3 thèmes ont été développés au départ pour MediaSPIP : * SPIPeo : thème par défaut de MédiaSPIP. Il met en avant la présentation du site et les documents média les plus récents ( le type de tri peut être modifié - titre, popularité, date) . * Arscenic : il s’agit du thème utilisé sur le site officiel du projet, constitué notamment d’un bandeau rouge en début de page. La structure (...)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette 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.

Sur d’autres sites (11606)

  • Mozilla Firefox 36 has problems playing my h264 MP4 files

    11 juin 2015, par Wolfgang Pürstner

    I try to convert videos with ffmpeg to mp4 format (h264) Profile : High Level : 3.1 (1280x720 with 30fps), Bitrate 1500k

    The video plays very well in every browser except in Firefox.

    http://5.79.72.89/trailer/trailer.mp4

    At first it needs longer to load and when I seek inside the video most times the video don’t stop to load and never plays again.
    I can see a lot of partial downloads in the developer console. A lot of them are for the initial play and the rest of the requests are during the video load when I seek to a later position.

    enter image description here

    When I play other h264 Videos (MP4 with similar settings) they play without problems on this server.
    And when I put my video on another webserver (apache) there are the same problems with Firefox.

    For this reason I believe it has to do something with me my conversion.

    My settings :
    Debian 7 (wheezy)
    Webserver : nginx (with 260k bandwidth limit)

    I started converting videos with avconv and switched to ffmpeg because of this problems. But there was no success.
    Meanwhile I tried all options for encoding but there are always the same problems with Firefox. Other videos play well but not mines and I don’t know why.

    Command :

    ffmpeg -i input.mp4 -tune zerolatency -x264opts bitrate=1500:vbv-maxrate=1500:vbv-bufsize=3000:nal-hrd=vbr -codec:v libx264 -profile:v high -level 3.1 -movflags +faststart -pix_fmt yuv420p  -s 1280x720 -r 30 -ac 2 -ar 48000 -codec:a aac -ab 64k -strict experimental -y trailer.mp4
    
    ffmpeg 1.0.10
    libavutil      51. 73.101 / 51. 73.101
    libavcodec     54. 59.100 / 54. 59.100
    libavformat    54. 29.104 / 54. 29.104
    libavdevice    54.  2.101 / 54.  2.101
    libavfilter     3. 17.100 /  3. 17.100
    libswscale      2.  1.101 /  2.  1.101
    libswresample   0. 15.100 /  0. 15.100
    libpostproc    52.  0.100 / 52.  0.100
    

    Mediainfo of the file : trailer.mp4

    General
    Complete name : trailer.mp4
    Format : MPEG-4
    Format profile : Base Media
    Codec ID : isom
    File size : 115 MiB
    Duration : 10mn 34s
    Overall bit rate : 1 516 Kbps
    Movie name : Big Buck Bunny, Sunflower version
    Performer : Blender Foundation 2008, Janus Bager Kristensen 2013
    Composer : Sacha Goedegebure
    Genre : Animation
    Writing application : Lavf54.29.104
    Comment : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
    

    Video
    ID : 1
    Format : AVC
    Format/Info : Advanced Video Codec
    Format profile : High@L3.1
    Format settings, CABAC : Yes
    Format settings, ReFrames : 4 frames
    Codec ID : avc1
    Codec ID/Info : Advanced Video Coding
    Duration : 10mn 34s
    Bit rate : 1 500 Kbps
    Width : 1 920 pixels
    Height : 1 080 pixels
    Display aspect ratio : 16:9
    Frame rate mode : Constant
    Frame rate : 30.000 fps
    Color space : YUV
    Chroma subsampling : 4:2:0
    Bit depth : 8 bits
    Scan type : Progressive
    Bits/(Pixel*Frame) : 0.024
    Stream size : 109 MiB (95%)
    Writing library : x264 core 132
    Encoding settings : cabac=1 / ref=4 / 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=50 / keyint_min=5 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=cbr / mbtree=1 / bitrate=1500 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=1500 / vbv_bufsize=3000 / nal_hrd=none / ip_ratio=1.40 / aq=1:1.00

    Audio
    ID : 2
    Format : AAC
    Format/Info : Advanced Audio Codec
    Format profile : LC
    Codec ID : 40
    Duration : 10mn 34s
    Duration_LastFrame : -11ms
    Bit rate mode : Constant
    Bit rate : 64.2 Kbps
    Channel(s) : 2 channels
    Channel positions : Front : L R
    Sampling rate : 48.0 KHz
    Compression mode : Lossy
    Delay relative to video : -2ms
    Stream size : 4.85 MiB (4%)

    I don’t know what is wrong with my files.

    Update 2015-03-12 :

    If I convert the video without audio stream there is no problem with firefox anymore.

    I updated ffmpeg to 2.6. I used libfaac, aac and libfdk_aac for audio encoding with cbr and vbr but without success.

  • ffmpeg - splitting, overlaying and selecting frame range in multiple input/outputs with complex video filter producing empty output

    11 octobre 2017, par Josep Carner

    I am trying to use ffmpeg to apply multiple filters -single input, multiple outputs-. In concrete, I am splitting the output in two, then applying an overlaying patch to one of those streams, split again and select a time range. The command I am using is :

      ffmpeg \
       -i ./dataset_test/videos/jz_10_huron_barstow.mkv \
       -an \
       -sn \
       -loglevel error \
       -filter_complex \
           "[0:v]split=2[L_in][F_in];
            [L_in]
               crop=226:307:21:74,scale=200x200,setdar=200:200,split=2\
            [L_in_0][L_in_1];\
            color=#808080:226x307,setpts=PTS-STARTPTS[L_PATCH];\
            [F_in][L_PATCH]
               overlay=21:74:shortest=1,scale=200x200,setdar=200:200,split=2\
            [F_in_0][F_in_1];\
            [F_in_0]select='between(t\,32\,212)',select='not(mod(n\,20))',setpts=(PTS-STARTPTS)/20[F_0];\
            [F_in_1]select='between(t\,213\,393)',select='not(mod(n\,20))',setpts=(PTS-STARTPTS)/20[F_1];\
            [L_in_0]select='between(t\,32\,212)',select='not(mod(n\,20))',setpts=(PTS-STARTPTS)/20[L_0];\
            [L_in_1]select='between(t\,213\,393)',select='not(mod(n\,20))',setpts=(PTS-STARTPTS)/20[L_1]\
            "\
       -map [F_0] -an -sn ./out/jz_10_huron_barstow/F/0_F.mp4\
       -map [F_1] -an -sn ./out/jz_10_huron_barstow/F/1_F.mp4\
       -map [L_0] -an -sn ./out/jz_10_huron_barstow/L/0_L.mp4\
       -map [L_1] -an -sn ./out/jz_10_huron_barstow/L/1_L.mp4\

    For some reason, 0_F.mp4 is empty and 1_F.mp4 is cropped. My intuition is that it has something to do with applying splitting + overlaying + selecting. I think at some point some filter before select is changing the PTS of the frames in some way select is not properly discarding them, but I honestly don’t know how to solve it. Some insights :

    1. L_0 and L_1 are fine (no overlay is used in those two)

    2. If I suppress L outputs everything works fine (no "split" is needed at the beginning)

    Could someone provide some light ? I don’t really know what else to try.
    The logs with loglevel 40 are (some repeated lines ommited) :

    ffmpeg version 2.8.1 Copyright (c) 2000-2015 the FFmpeg developers
     built with Apple LLVM version 9.0.0 (clang-900.0.37)
     configuration: --prefix=/usr/local/Cellar/ffmpeg/2.8.1_1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid --enable-vda
     libavutil      54. 31.100 / 54. 31.100
     libavcodec     56. 60.100 / 56. 60.100
     libavformat    56. 40.101 / 56. 40.101
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5. 40.101 /  5. 40.101
     libavresample   2.  1.  0 /  2.  1.  0
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  2.101 /  1.  2.101
     libpostproc    53.  3.100 / 53.  3.100
    Input #0, matroska,webm, from './dataset_test/videos/jz_10_huron_barstow.mkv':
     Metadata:
       ENCODER         : Lavf57.66.104
     Duration: 00:24:04.14, start: 0.000000, bitrate: 2117 kb/s
       Stream #0:0: Video: h264 (Main), 1 reference frame, yuv420p, 1440x900 (1440x912) [SAR 1:1 DAR 8:5], 30 fps, 30 tbr, 1k tbn, 60 tbc (default)
       Metadata:
         ENCODER         : Lavc57.83.100 h264_nvenc
         DURATION        : 00:24:04.102000000
       Stream #0:1: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s (default)
       Metadata:
         ENCODER         : Lavc57.83.100 ac3
         DURATION        : 00:24:04.135000000
    [Parsed_scale_2 @ 0x7fdfd2403d20] w:200 h:200 flags:'bilinear' interl:0
    [Parsed_setdar_3 @ 0x7fdfd240ad80] num:den syntax is deprecated, please use num/den or named options instead
    [Parsed_color_5 @ 0x7fdfd24096a0] size:226x307 rate:25/1 duration:-1.000000 sar:1/1
    [Parsed_scale_8 @ 0x7fdfd24092c0] w:200 h:200 flags:'bilinear' interl:0
    [Parsed_setdar_9 @ 0x7fdfd240b360] num:den syntax is deprecated, please use num/den or named options instead
    [Parsed_scale_2 @ 0x7fdfd2509b00] w:200 h:200 flags:'bilinear' interl:0
    [Parsed_setdar_3 @ 0x7fdfd25092c0] num:den syntax is deprecated, please use num/den or named options instead
    [Parsed_color_5 @ 0x7fdfd250a520] size:226x307 rate:25/1 duration:-1.000000 sar:1/1
    [Parsed_scale_8 @ 0x7fdfd250b620] w:200 h:200 flags:'bilinear' interl:0
    [Parsed_setdar_9 @ 0x7fdfd250a960] num:den syntax is deprecated, please use num/den or named options instead
    [graph 0 input from stream 0:0 @ 0x7fdfd2511360] w:1440 h:900 pixfmt:yuv420p tb:1/1000 fr:30/1 sar:1/1 sws_param:flags=2
    [Parsed_crop_1 @ 0x7fdfd2509c80] w:1440 h:900 sar:1/1 -> w:226 h:306 sar:1/1
    [Parsed_scale_2 @ 0x7fdfd2509b00] w:226 h:306 fmt:yuv420p sar:1/1 -> w:200 h:200 fmt:yuv420p sar:113/153 flags:0x2
    [Parsed_setdar_3 @ 0x7fdfd25092c0] w:200 h:200 dar:113/153 sar:113/153 -> dar:1/1 sar:1/1
    [Parsed_select_21 @ 0x7fdfd250a760] TB:0.001000 FRAME_RATE:30.000000 SAMPLE_RATE:nan
    [Parsed_select_18 @ 0x7fdfd250a080] TB:0.001000 FRAME_RATE:30.000000 SAMPLE_RATE:nan
    [Parsed_color_5 @ 0x7fdfd250a520] TB:0.040000 FRAME_RATE:25.000000 SAMPLE_RATE:nan
    [Parsed_overlay_7 @ 0x7fdfd250b020] main w:1440 h:900 fmt:yuv420p overlay w:226 h:306 fmt:yuva420p eof_action:endall
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Selected 1/1000 time base
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Sync level 2
    [Parsed_scale_8 @ 0x7fdfd250b620] w:1440 h:900 fmt:yuv420p sar:1/1 -> w:200 h:200 fmt:yuv420p sar:8/5 flags:0x2
    [Parsed_setdar_9 @ 0x7fdfd250a960] w:200 h:200 dar:8/5 sar:8/5 -> dar:1/1 sar:1/1
    [Parsed_select_15 @ 0x7fdfd250dd00] TB:0.001000 FRAME_RATE:30.000000 SAMPLE_RATE:nan
    [Parsed_select_12 @ 0x7fdfd250ca60] TB:0.001000 FRAME_RATE:30.000000 SAMPLE_RATE:nan
    [libx264 @ 0x7fdfd4005e00] using SAR=1/1
    [libx264 @ 0x7fdfd4005e00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
    [libx264 @ 0x7fdfd4005e00] profile High, level 1.2
    [libx264 @ 0x7fdfd4005e00] 264 - core 148 r2601 a0cd7d3 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - 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
    [libx264 @ 0x7fdfd400f600] using SAR=1/1
    [libx264 @ 0x7fdfd400f600] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
    [libx264 @ 0x7fdfd400f600] profile High, level 1.2
    [libx264 @ 0x7fdfd400f600] 264 - core 148 r2601 a0cd7d3 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - 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
    [libx264 @ 0x7fdfd4018e00] using SAR=1/1
    [libx264 @ 0x7fdfd4018e00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
    [libx264 @ 0x7fdfd4018e00] profile High, level 1.2
    [libx264 @ 0x7fdfd4018e00] 264 - core 148 r2601 a0cd7d3 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - 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
    [libx264 @ 0x7fdfd4022600] using SAR=1/1
    [libx264 @ 0x7fdfd4022600] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
    [libx264 @ 0x7fdfd4022600] profile High, level 1.2
    [libx264 @ 0x7fdfd4022600] 264 - core 148 r2601 a0cd7d3 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - 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 './out/jz_10_huron_barstow/F/0_F.mp4':
     Metadata:
       encoder         : Lavf56.40.101
       Stream #0:0: Video: h264 (libx264), -1 reference frame ([33][0][0][0] / 0x0021), yuv420p, 200x200 [SAR 1:1 DAR 1:1], q=-1--1, 30 fps, 15360 tbn, 30 tbc (default)
       Metadata:
         encoder         : Lavc56.60.100 libx264
    Output #1, mp4, to './out/jz_10_huron_barstow/F/1_F.mp4':
     Metadata:
       encoder         : Lavf56.40.101
       Stream #1:0: Video: h264 (libx264), -1 reference frame ([33][0][0][0] / 0x0021), yuv420p, 200x200 [SAR 1:1 DAR 1:1], q=-1--1, 30 fps, 15360 tbn, 30 tbc (default)
       Metadata:
         encoder         : Lavc56.60.100 libx264
    Output #2, mp4, to './out/jz_10_huron_barstow/L/0_L.mp4':
     Metadata:
       encoder         : Lavf56.40.101
       Stream #2:0: Video: h264 (libx264), -1 reference frame ([33][0][0][0] / 0x0021), yuv420p, 200x200 [SAR 1:1 DAR 1:1], q=-1--1, 30 fps, 15360 tbn, 30 tbc (default)
       Metadata:
         encoder         : Lavc56.60.100 libx264
    Output #3, mp4, to './out/jz_10_huron_barstow/L/1_L.mp4':
     Metadata:
       encoder         : Lavf56.40.101
       Stream #3:0: Video: h264 (libx264), -1 reference frame ([33][0][0][0] / 0x0021), yuv420p, 200x200 [SAR 1:1 DAR 1:1], q=-1--1, 30 fps, 15360 tbn, 30 tbc (default)
       Metadata:
         encoder         : Lavc56.60.100 libx264
    Stream mapping:
     Stream #0:0 (h264) -> split
     setpts -> Stream #0:0 (libx264)
     setpts -> Stream #1:0 (libx264)
     setpts -> Stream #2:0 (libx264)
     setpts -> Stream #3:0 (libx264)
    Press [q] to stop, [?] for help
    [swscaler @ 0x7fdfd3800000] Warning: data is not aligned! This can lead to a speedloss
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 210 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 262 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 239 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 195 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 211 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 255 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 148 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 174 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 182 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 193 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:00.26 bitrate=   1.4kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 156 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:00.53 bitrate=   0.7kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 154 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:00.76 bitrate=   0.5kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 155 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:01.03 bitrate=   0.4kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 231 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:01.43 bitrate=   0.3kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 260 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:01.86 bitrate=   0.2kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 256 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:02.30 bitrate=   0.2kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 209 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:02.63 bitrate=   0.1kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 253 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:03.06 bitrate=   0.1kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 160 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:03.33 bitrate=   0.1kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 189 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:03.63 bitrate=   0.1kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 201 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:03.96 bitrate=   0.1kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 251 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:04.40 bitrate=   0.1kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 246 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:04.80 bitrate=   0.1kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 257 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:05.23 bitrate=   0.1kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 258 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:05.66 bitrate=   0.1kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 251 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:06.10 bitrate=   0.1kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 274 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:06.56 bitrate=   0.1kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 282 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:07.03 bitrate=   0.1kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Buffer queue overflow, dropping.
       Last message repeated 185 times
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:07.26 bitrate=   0.1kbits/s    
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:07.26 bitrate=   0.1kbits/s    
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:07.26 bitrate=   0.1kbits/s    
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:07.26 bitrate=   0.1kbits/s    
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:07.26 bitrate=   0.1kbits/s    
    frame=    0 fps=0.0 q=0.0 q=0.0 q=29.0 q=0.0 size=       0kB time=00:00:07.26 bitrate=   0.1kbits/s    
    frame=    0 fps=0.0 q=0.0 q=29.0 q=29.0 q=29.0 size=       0kB time=00:00:07.26 bitrate=   0.1kbits/s    
    frame=    0 fps=0.0 q=0.0 q=29.0 q=29.0 q=29.0 size=       0kB time=00:00:07.26 bitrate=   0.1kbits/s    
    frame=    0 fps=0.0 q=0.0 q=29.0 q=29.0 q=29.0 size=       0kB time=00:00:07.26 bitrate=   0.1kbits/s    
    frame=    0 fps=0.0 q=0.0 q=29.0 q=29.0 q=29.0 size=       0kB time=00:00:07.26 bitrate=   0.1kbits/s    
    frame=    0 fps=0.0 q=0.0 q=29.0 q=29.0 q=29.0 size=       0kB time=00:00:07.26 bitrate=   0.1kbits/s    
    […]  
    frame=    0 fps=0.0 q=0.0 q=29.0 q=29.0 q=29.0 size=       0kB time=00:00:07.26 bitrate=   0.1kbits/s    
    [Parsed_overlay_7 @ 0x7fdfd250b020] [framesync @ 0x7fdfd250b708] Sync level 1
    No more output streams to write to, finishing.
    frame=    0 fps=0.0 q=0.0 Lq=-1.0 q=-1.0 q=-1.0 size=       0kB time=00:00:08.93 bitrate=   0.2kbits/s    
    video:620kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    Input file #0 (./dataset_test/videos/jz_10_huron_barstow.mkv):
     Input stream #0:0 (video): 43323 packets read (347030822 bytes); 43323 frames decoded;
     Input stream #0:1 (audio): 4 packets read (3072 bytes);
     Total: 43327 packets (347033894 bytes) demuxed
    Output file #0 (./out/jz_10_huron_barstow/F/0_F.mp4):
     Output stream #0:0 (video): 0 frames encoded; 0 packets muxed (0 bytes);
     Total: 0 packets (0 bytes) muxed
    Output file #1 (./out/jz_10_huron_barstow/F/1_F.mp4):
     Output stream #1:0 (video): 270 frames encoded; 270 packets muxed (309743 bytes);
     Total: 270 packets (309743 bytes) muxed
    Output file #2 (./out/jz_10_huron_barstow/L/0_L.mp4):
     Output stream #2:0 (video): 270 frames encoded; 270 packets muxed (169687 bytes);
     Total: 270 packets (169687 bytes) muxed
    Output file #3 (./out/jz_10_huron_barstow/L/1_L.mp4):
     Output stream #3:0 (video): 270 frames encoded; 270 packets muxed (155502 bytes);
     Total: 270 packets (155502 bytes) muxed
    [libx264 @ 0x7fdfd400f600] frame I:2     Avg QP:25.08  size:  3204
    [libx264 @ 0x7fdfd400f600] frame P:140   Avg QP:26.63  size:  1426
    [libx264 @ 0x7fdfd400f600] frame B:128   Avg QP:28.64  size:   805
    [libx264 @ 0x7fdfd400f600] consecutive B-frames:  5.2% 94.8%  0.0%  0.0%
    [libx264 @ 0x7fdfd400f600] mb I  I16..4:  8.6% 62.7% 28.7%
    [libx264 @ 0x7fdfd400f600] mb P  I16..4:  2.5% 12.5%  3.4%  P16..4: 39.2% 21.4%  9.3%  0.0%  0.0%    skip:11.6%
    [libx264 @ 0x7fdfd400f600] mb B  I16..4:  0.5%  4.0%  1.0%  B16..8: 36.5% 16.7%  4.0%  direct: 5.5%  skip:31.8%  L0:43.4% L1:46.9% BI: 9.7%
    [libx264 @ 0x7fdfd400f600] 8x8 transform intra:68.6% inter:67.7%
    [libx264 @ 0x7fdfd400f600] coded y,uvDC,uvAC intra: 63.1% 48.6% 17.9% inter: 34.5% 21.1% 3.6%
    [libx264 @ 0x7fdfd400f600] i16 v,h,dc,p: 24% 23% 12% 41%
    [libx264 @ 0x7fdfd400f600] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 19% 26%  7%  5%  5%  7%  6%  8%
    [libx264 @ 0x7fdfd400f600] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 29% 18%  6%  6%  5%  5%  4%  5%
    [libx264 @ 0x7fdfd400f600] i8c dc,h,v,p: 63% 21% 14%  3%
    [libx264 @ 0x7fdfd400f600] Weighted P-Frames: Y:14.3% UV:1.4%
    [libx264 @ 0x7fdfd400f600] ref P L0: 49.2% 20.4% 17.3% 11.2%  1.9%
    [libx264 @ 0x7fdfd400f600] ref B L0: 75.4% 24.6%
    [libx264 @ 0x7fdfd400f600] kb/s:274.71
    [libx264 @ 0x7fdfd4018e00] frame I:2     Avg QP:23.87  size:  2294
    [libx264 @ 0x7fdfd4018e00] frame P:133   Avg QP:25.45  size:   864
    [libx264 @ 0x7fdfd4018e00] frame B:135   Avg QP:28.99  size:   367
    [libx264 @ 0x7fdfd4018e00] consecutive B-frames: 17.4% 38.5% 27.8% 16.3%
    [libx264 @ 0x7fdfd4018e00] mb I  I16..4: 14.5% 54.1% 31.4%
    [libx264 @ 0x7fdfd4018e00] mb P  I16..4:  6.4%  9.6%  2.1%  P16..4: 33.3% 16.7%  5.9%  0.0%  0.0%    skip:26.0%
    [libx264 @ 0x7fdfd4018e00] mb B  I16..4:  1.6%  2.0%  0.3%  B16..8: 29.6%  9.3%  1.4%  direct: 2.2%  skip:53.6%  L0:41.9% L1:51.4% BI: 6.7%
    [libx264 @ 0x7fdfd4018e00] 8x8 transform intra:52.8% inter:73.8%
    [libx264 @ 0x7fdfd4018e00] coded y,uvDC,uvAC intra: 40.7% 41.7% 8.9% inter: 20.7% 16.6% 0.2%
    [libx264 @ 0x7fdfd4018e00] i16 v,h,dc,p: 22% 50%  8% 21%
    [libx264 @ 0x7fdfd4018e00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 30% 23%  6%  2%  2%  5%  5%  9%
    [libx264 @ 0x7fdfd4018e00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 29% 29% 14%  5%  3%  4%  5%  6%  5%
    [libx264 @ 0x7fdfd4018e00] i8c dc,h,v,p: 62% 23% 12%  3%
    [libx264 @ 0x7fdfd4018e00] Weighted P-Frames: Y:1.5% UV:0.8%
    [libx264 @ 0x7fdfd4018e00] ref P L0: 56.1% 15.8% 17.7% 10.2%  0.1%
    [libx264 @ 0x7fdfd4018e00] ref B L0: 75.4% 20.8%  3.9%
    [libx264 @ 0x7fdfd4018e00] ref B L1: 92.6%  7.4%
    [libx264 @ 0x7fdfd4018e00] kb/s:150.22
    [libx264 @ 0x7fdfd4022600] frame I:2     Avg QP:23.86  size:  2208
    [libx264 @ 0x7fdfd4022600] frame P:139   Avg QP:24.90  size:   784
    [libx264 @ 0x7fdfd4022600] frame B:129   Avg QP:28.25  size:   322
    [libx264 @ 0x7fdfd4022600] consecutive B-frames: 17.8% 50.4% 15.6% 16.3%
    [libx264 @ 0x7fdfd4022600] mb I  I16..4: 15.7% 53.3% 31.1%
    [libx264 @ 0x7fdfd4022600] mb P  I16..4:  8.3%  9.9%  1.5%  P16..4: 33.8% 14.8%  5.0%  0.0%  0.0%    skip:26.7%
    [libx264 @ 0x7fdfd4022600] mb B  I16..4:  1.6%  1.8%  0.1%  B16..8: 28.8%  8.2%  1.1%  direct: 2.1%  skip:56.4%  L0:45.5% L1:47.6% BI: 6.9%
    [libx264 @ 0x7fdfd4022600] 8x8 transform intra:50.6% inter:75.8%
    [libx264 @ 0x7fdfd4022600] coded y,uvDC,uvAC intra: 34.0% 44.3% 10.0% inter: 18.8% 17.9% 0.4%
    [libx264 @ 0x7fdfd4022600] i16 v,h,dc,p: 18% 54%  8% 20%
    [libx264 @ 0x7fdfd4022600] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 28% 26%  6%  2%  2%  4%  5%  8%
    [libx264 @ 0x7fdfd4022600] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 32% 31% 14%  4%  2%  2%  3%  7%  5%
    [libx264 @ 0x7fdfd4022600] i8c dc,h,v,p: 60% 25% 13%  2%
    [libx264 @ 0x7fdfd4022600] Weighted P-Frames: Y:2.2% UV:0.7%
    [libx264 @ 0x7fdfd4022600] ref P L0: 57.9% 16.8% 16.1%  8.9%  0.2%
    [libx264 @ 0x7fdfd4022600] ref B L0: 76.5% 21.0%  2.5%
    [libx264 @ 0x7fdfd4022600] ref B L1: 95.0%  5.0%
    [libx264 @ 0x7fdfd4022600] kb/s:137.61
  • Converting uint8_t data to AVFrame with FFmpeg

    30 octobre 2017, par J.Lefebvre

    I am currently working in C++ with the Autodesk 3DStudio Max 2014 SDK (toolset 100) and the Ffmpeg library in Visual Studio 2015 and trying to convert a DIB (Device Independent Bitmap) to uint8_t pointer array and then convert these data to an AVFrame.

    I don’t have any errors, but my video is still black and without meta data.
    (no time display, etc)

    I made approximatively the same with a Visual Studio Console application to convert jpeg image sequence from disk and this is working fine.
    (The only difference is that instead of converting jpeg to AVFrame with the Ffmpeg library, I try to convert raw data to an AVFrame.)

    So I think the problem could be either on the DIB conversion to the uint8_t data or the uint8_t data to the AVFrame.
    (The second is more plausible, because I used the SFML library to display a window with my rgb uint8_t* data for debuging and it is working fine.)

    I first initialize the ffmpeg library :

    This function is called once at the beginning.

    int Converter::Initialize(AVCodecID codec_id, int width, int height, int fps, const char *filename)
    {
       avcodec_register_all();
       av_register_all();

       AVCodec *codec;
       inputFrame = NULL;
       codecContext = NULL;
       pkt = NULL;
       file = NULL;
       outputFilename = new char[strlen(filename)]();
       *outputFilename = '\0';
       strcpy(outputFilename, filename);

       int ret;

       //Initializing AVCodecContext and getting PixelFormat supported by encoder
       codec = avcodec_find_encoder(codec_id);
       if (!codec)
           return 1;

       AVPixelFormat pixFormat = codec->pix_fmts[0];
       codecContext = avcodec_alloc_context3(codec);
       if (!codecContext)
           return 1;

       codecContext->bit_rate = 400000;
       codecContext->width = width;
       codecContext->height = height;
       codecContext->time_base.num = 1;
       codecContext->time_base.den = fps;
       codecContext->gop_size = 10;
       codecContext->max_b_frames = 1;
       codecContext->pix_fmt = pixFormat;

       if (codec_id == AV_CODEC_ID_H264)
           av_opt_set(codecContext->priv_data, "preset", "slow", 0);

       //Actually opening the encoder
       if (avcodec_open2(codecContext, codec, NULL) < 0)
           return 1;

       file = fopen(outputFilename, "wb");
       if (!file)
           return 1;

       inputFrame = av_frame_alloc();
       inputFrame->format = codecContext->pix_fmt;
       inputFrame->width = codecContext->width;
       inputFrame->height = codecContext->height;

       ret = av_image_alloc(inputFrame->data, inputFrame->linesize, codecContext->width, codecContext->height, codecContext->pix_fmt, 32);

       if (ret < 0)
           return 1;

       return 0;
    }

    Then for each frame, I get the DIB and convert to a uint8_t* it with this function :

    uint8_t* Util::ToUint8_t(RGBQUAD *data, int width, int height)
    {
       uint8_t* buf = (uint8_t*)data;

       int imageSize = width * height;
       size_t rgbquad_size = sizeof(RGBQUAD);
       size_t total_bytes = imageSize * rgbquad_size;
       uint8_t * pCopyBuffer = new uint8_t[total_bytes];

       for (int x = 0; x < width; x++)
       {
           for (int y = 0; y < height; y++)
           {
               int index = (x + width * y) * rgbquad_size;
               int invertIndex = (x + width* (height - y - 1)) * rgbquad_size;

               //BGRA to RGBA
               pCopyBuffer[index] = buf[invertIndex + 2];
               pCopyBuffer[index + 1] = buf[invertIndex + 1];
               pCopyBuffer[index + 2] = buf[invertIndex];
               pCopyBuffer[index + 3] = 0xFF;
           }
       }

       return pCopyBuffer;
    }

    void GetDIBBuffer(Interface* ip, BITMAPINFO *bmi, uint8_t** outBuffer)
    {
       int size;

       ViewExp& view = ip->GetActiveViewExp();

       view.getGW()->getDIB(NULL, &size);

       bmi = (BITMAPINFO *)malloc(size);
       BITMAPINFOHEADER *bmih = (BITMAPINFOHEADER *)bmi;
       view.getGW()->getDIB(bmi, &size);

       uint8_t * pCopyBuffer = Util::ToUint8_t(bmi->bmiColors, bmih->biWidth, bmih->biHeight);

       *outBuffer = pCopyBuffer;
    }

    This function is used to get the DIB :

    void GetViewportDIB(Interface* ip, BITMAPINFO *bmi, BITMAPINFOHEADER *bmih, BitmapInfo biFile, Bitmap *map)
    {
       int size;

       if (!biFile.Name()[0])
           return;

       ViewExp& view = ip->GetActiveViewExp();

       view.getGW()->getDIB(NULL, &size);

       bmi = (BITMAPINFO *)malloc(size);
       bmih = (BITMAPINFOHEADER *)bmi;

       view.getGW()->getDIB(bmi, &size);

       biFile.SetWidth((WORD)bmih->biWidth);
       biFile.SetHeight((WORD)bmih->biHeight);
       biFile.SetType(BMM_TRUE_32);

       map = TheManager->Create(&biFile);
       map->OpenOutput(&biFile);
       map->FromDib(bmi);
       map->Write(&biFile);
       map->Close(&biFile);
    }

    And after the conversion to AVFrame and video encoding :

    The EncodeFromMem function is call each frame.

    int Converter::EncodeFromMem(const char *outputDir, int frameNumber, uint8_t* data)
    {
       int ret;

       inputFrame->pts = frameNumber;
       EncodeFrame(data, codecContext, inputFrame, &pkt, file);

       return 0;
    }

    static void RgbToYuv(uint8_t *rgb, AVCodecContext *c, AVFrame *frame)
    {
       struct SwsContext *swsCtx = NULL;
       const int in_linesize[1] = { 3 * c->width };// RGB stride
       swsCtx = sws_getCachedContext(swsCtx, c->width, c->height, AV_PIX_FMT_RGB24, c->width, c->height, AV_PIX_FMT_YUV420P, 0, 0, 0, 0);
       sws_scale(swsCtx, (const uint8_t * const *)&rgb, in_linesize, 0, c->height, frame->data, frame->linesize);
    }

    static void EncodeFrame(uint8_t *rgb, AVCodecContext *c, AVFrame *frame, AVPacket **pkt, FILE *file)
    {
       int ret, got_output;

       RgbToYuv(rgb, c, frame);

       *pkt = av_packet_alloc();
       av_init_packet(*pkt);
       (*pkt)->data = NULL;
       (*pkt)->size = 0;

       ret = avcodec_encode_video2(c, *pkt, frame, &got_output);
       if (ret < 0)
       {
           fprintf(stderr, "Error encoding frame/n");
           exit(1);
       }
       if (got_output)
       {
           fwrite((*pkt)->data, 1, (*pkt)->size, file);
           av_packet_unref(*pkt);
       }
    }

    To finish I have a function that write the packets and free the memory :
    This function is called once at the end of the time range.

    int Converter::Finalize()
    {
       int ret, got_output;
       uint8_t endcode[] = { 0, 0, 1, 0xb7 };

       /* get the delayed frames */
       do
       {
           fflush(stdout);
           ret = avcodec_encode_video2(codecContext, pkt, NULL, &got_output);
           if (ret < 0)
           {
               fprintf(stderr, "Error encoding frame/n");
               return 1;
           }
           if (got_output)
           {
               fwrite(pkt->data, 1, pkt->size, file);
               av_packet_unref(pkt);
           }
       } while (got_output);

       fwrite(endcode, 1, sizeof(endcode), file);
       fclose(file);

       avcodec_close(codecContext);
       av_free(codecContext);

       av_frame_unref(inputFrame);
       av_frame_free(&inputFrame);
       //av_freep(&inputFrame->data[0]); //Crash

       delete outputFilename;
       outputFilename = 0;

       return 0;
    }

    EDIT :

    I modify my RgbToYuv function and create another one to convert back the yuv frame to an rgb one.

    This not really solve the problem, but maybe focus the problem on the conversion from YuvToRgb.

    This is the result of the conversion from YUV to RGB :

     ![YuvToRgb result] : https://img42.com/kHqpt+

    static void YuvToRgb(AVCodecContext *c, AVFrame *frame)
    {
       struct SwsContext *img_convert_ctx = sws_getContext(c->width, c->height, AV_PIX_FMT_YUV420P, c->width, c->height, AV_PIX_FMT_RGB24, SWS_BICUBIC, NULL, NULL, NULL);
       AVFrame * rgbPictInfo = av_frame_alloc();
       avpicture_fill((AVPicture*)rgbPictInfo, *(frame)->data, AV_PIX_FMT_RGB24, c->width, c->height);
       sws_scale(img_convert_ctx, frame->data, frame->linesize, 0, c->height, rgbPictInfo->data, rgbPictInfo->linesize);

       Util::DebugWindow(c->width, c->height, rgbPictInfo->data[0]);
    }
    static void RgbToYuv(uint8_t *rgb, AVCodecContext *c, AVFrame *frame)
    {
       AVFrame * rgbPictInfo = av_frame_alloc();
       avpicture_fill((AVPicture*)rgbPictInfo, rgb, AV_PIX_FMT_RGBA, c->width, c->height);

       struct SwsContext *swsCtx = sws_getContext(c->width, c->height, AV_PIX_FMT_RGBA, c->width, c->height, AV_PIX_FMT_YUV420P, SWS_BICUBIC, NULL, NULL, NULL);
       avpicture_fill((AVPicture*)frame, rgb, AV_PIX_FMT_YUV420P, c->width, c->height);    
       sws_scale(swsCtx, rgbPictInfo->data, rgbPictInfo->linesize, 0, c->height, frame->data, frame->linesize);

       YuvToRgb(c, frame);
    }