Recherche avancée

Médias (1)

Mot : - Tags -/artwork

Autres articles (101)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Configuration spécifique d’Apache

    4 février 2011, par

    Modules spécifiques
    Pour la configuration d’Apache, il est conseillé d’activer certains modules non spécifiques à MediaSPIP, mais permettant d’améliorer les performances : mod_deflate et mod_headers pour compresser automatiquement via Apache les pages. Cf ce tutoriel ; mode_expires pour gérer correctement l’expiration des hits. Cf ce tutoriel ;
    Il est également conseillé d’ajouter la prise en charge par apache du mime-type pour les fichiers WebM comme indiqué dans ce tutoriel.
    Création d’un (...)

Sur d’autres sites (9174)

  • FFMPEG changes speed when concat 2 or more different videos

    13 novembre 2020, par Daniel Santos Neto

    I am using this code

    


    ffmpeg   -y  -re -i "/myvideos/countdown10.mp4"   -re -i "/myvideos/video_218.mp4"  -re -i "/myvideos/video_220.mp4"   -re -i "/myvideos/video_221.mp4"  -re -i "/myvideos/video_222.mp4"   -re -i "/myvideos/countdown10.mp4"  -re -i '/myvideos/watermark.png'  -filter_complex " [0:v] [0:a]   [1:v] [1:a]   [2:v] [2:a]   [3:v] [3:a]   [4:v] [4:a]   [5:v] [5:a]  concat=n=6:v=1:a=1:unsafe=1 [vv] [a]; [vv][6:v]overlay=W-w-0:0[v]" -map "[v]" -map "[a]"  -preset veryfast -vcodec h264 -acodec aac -strict -2 -max_muxing_queue_size 1024 -y -s 1280x720  -ar 44100 -f flv rtmp://server/live/5fa3731d4f8a6_159


    


    the problem is, when I run it the process speed is a lot faster then the videos length, so I got disconnected from my livestream before the live finishes.

    


    I guess it is something related to the bit rates.

    


    also I notice depends on what video is transcoding the speed floats between 0.9x and 3.7x

    


    frame= 4481 fps= 76 q=-1.0 Lsize= 16857kB time=00:03:13.21 bitrate= 714.7kbits/s dup=0 drop=393 speed=3.29x

    


    Edited :

    


    Complete log file :

    


    avideo@ubuntu:~$ ffmpeg    -re -i "/var/www/gdrive/htdocs/YouPHPTube-Encoder/videos/videosListToLive/countdown10.mp4"   -re -i "/var/www/gdrive/htdocs/YouPHPTube-Encoder/videos/videosListToLive/192.168.1.4/video_222.mp4" -filter_complex " [0:v] [0:a]   [1:v] [1:a] concat=n=2:v=1:a=1:unsafe=1 [v] [a]" -map "[v]" -map "[a]"   -preset veryfast  -vcodec h264 -acodec aac -strict -2 -max_muxing_queue_size 1024 -y -s 1280x720 -ar 44100  -f flv rtmp://encoder.gdrive.local/live?p=f321d14cdeeb7cded7489f504fa8862b/5fa3731d4f8a6_160
ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)
  configuration: --prefix=/usr --extra-version=1ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/var/www/gdrive/htdocs/YouPHPTube-Encoder/videos/videosListToLive/countdown10.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.29.100
  Duration: 00:00:10.02, start: 0.000000, bitrate: 122 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 83 kb/s, 5 fps, 5 tbr, 10240 tbn, 10 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 35 kb/s (default)
    Metadata:
      handler_name    : IsoMedia File Produced by Google, 5-11-2011
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '/var/www/gdrive/htdocs/YouPHPTube-Encoder/videos/videosListToLive/192.168.1.4/video_222.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.29.100
  Duration: 00:00:30.60, start: 0.000000, bitrate: 37 kb/s
    Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 26 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc. Created on: 10/16/2018.
    Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc. Created on: 10/16/2018.
Stream mapping:
  Stream #0:0 (h264) -> concat:in0:v0
  Stream #0:1 (aac) -> concat:in0:a0
  Stream #1:0 (h264) -> concat:in1:v0
  Stream #1:1 (aac) -> concat:in1:a0
  concat:out:v0 -> Stream #0:0 (libx264)
  concat:out:a0 -> Stream #0:1 (aac)
Press [q] to stop, [?] for help
[libx264 @ 0x5645453b7a80] using SAR=1/1B time=-577014:32:22.77 bitrate=  -0.0kbits/s speed=N/A
[libx264 @ 0x5645453b7a80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x5645453b7a80] profile High, level 3.1
[libx264 @ 0x5645453b7a80] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 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=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=5 scenecut=40 intra_refresh=0 rc_lookahead=10 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, flv, to 'rtmp://encoder.gdrive.local/live?p=f321d14cdeeb7cded7489f504fa8862b/5fa3731d4f8a6_160':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.29.100
    Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 5 fps, 1k tbn, 5 tbc (default)
    Metadata:
      encoder         : Lavc58.54.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      encoder         : Lavc58.54.100 aac
[flv @ 0x5645453ae580] Failed to update header with correct duration. 49.3kbits/s dup=0 drop=751 speed=1.33x
[flv @ 0x5645453ae580] Failed to update header with correct filesize.
frame=  205 fps=6.7 q=-1.0 Lsize=     250kB time=00:00:40.58 bitrate=  50.5kbits/s dup=0 drop=762 speed=1.33x
video:164kB audio:53kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 15.473391%
[libx264 @ 0x5645453b7a80] frame I:2     Avg QP: 4.62  size: 10450
[libx264 @ 0x5645453b7a80] frame P:58    Avg QP:10.06  size:  1457
[libx264 @ 0x5645453b7a80] frame B:145   Avg QP:11.12  size:   427
[libx264 @ 0x5645453b7a80] consecutive B-frames:  4.9%  1.0%  4.4% 89.8%
[libx264 @ 0x5645453b7a80] mb I  I16..4: 91.4%  2.8%  5.7%
[libx264 @ 0x5645453b7a80] mb P  I16..4:  8.4%  0.4%  0.1%  P16..4:  2.0%  0.3%  0.1%  0.0%  0.0%    skip:88.6%
[libx264 @ 0x5645453b7a80] mb B  I16..4:  0.2%  0.1%  0.0%  B16..8:  0.9%  0.1%  0.0%  direct: 4.7%  skip:94.0%  L0:33.9% L1:63.4% BI: 2.7%
[libx264 @ 0x5645453b7a80] 8x8 transform intra:5.5% inter:24.0%
[libx264 @ 0x5645453b7a80] coded y,uvDC,uvAC intra: 4.7% 22.9% 19.5% inter: 0.2% 4.2% 0.3%
[libx264 @ 0x5645453b7a80] i16 v,h,dc,p: 94%  4%  2%  0%
[libx264 @ 0x5645453b7a80] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 31% 18% 37%  3%  2%  3%  2%  2%  1%
[libx264 @ 0x5645453b7a80] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 38% 20% 21%  5%  3%  4%  3%  4%  3%
[libx264 @ 0x5645453b7a80] i8c dc,h,v,p: 78%  8% 12%  2%
[libx264 @ 0x5645453b7a80] Weighted P-Frames: Y:20.7% UV:20.7%
[libx264 @ 0x5645453b7a80] kb/s:32.64
[aac @ 0x564545421540] Qavg: 61548.156
avideo@ubuntu:~$


    


    Also here is a video where you can see the process

    


    https://tutorials.avideo.com/video/102/ffmpeg-changes-speed-when-concat-2-or-more-different-videos

    


    this live should have exactly 40 seconds but finishes before then that

    


    also look at this time position https://tutorials.avideo.com/video/102/ffmpeg-changes-speed-when-concat-2-or-more-different-videos?t=12

    


    the speed changes from speed=0.9 to speed=1.9

    


    speed=0.9 to speed=1.9

    


    EDITED 2 :

    


    I tried the FPS command as suggested and still the problem

    


    avideo@ubuntu:~$ ffmpeg    -re -i "http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/index.m3u8?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmODBjNTQ3NDIxMDU3LjI0MDU2MDE1IiwidGltZSI6MTYwNTI4MzExN30="   -re -i "http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5fa3f4e37ffb65.33430678_720.mp4?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmYTNmNGUzN2ZmYjY1LjMzNDMwNjc4IiwidGltZSI6MTYwNTI4MzExN30="   -re -i '/var/www/gdrive/htdocs/YouPHPTube-Encoder/videos/videosListToLive/192.168.1.4/watermark.png'  -filter_complex "  [0]setdar=16/9,scale=1280:720, fps=30[0:v];     [1]setdar=16/9,scale=1280:720, fps=30[1:v];     [0:v] [0:a]     [1:v] [1:a]   concat=n=2:v=1:a=1:unsafe=1 [vv] [a]; [vv][2:v]overlay=W-w-0:0[v]" -map "[v]" -map "[a]"   -c:v libx264 -b:v 3000k -maxrate 3000k -bufsize 6000k -g 50 -c:a aac -b:a 128k -ac 2 -s 1280x720  -ar 44100   -f flv rtmp://encoder.gdrive.local/live?p=f321d14cdeeb7cded7489f504fa8862b/5fa3731d4f8a6_161
ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)
  configuration: --prefix=/usr --extra-version=1ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
[hls @ 0x5627c50f2800] Skip ('#EXT-X-VERSION:3')
[hls @ 0x5627c50f2800] Opening 'http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res240/index.m3u8?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmODBjNTQ3NDIxMDU3LjI0MDU2MDE1IiwidGltZSI6MTYwNTI4MzExN30=' for reading
[hls @ 0x5627c50f2800] Skip ('#EXT-X-VERSION:3')
[http @ 0x5627c50fa940] Opening 'http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res360/index.m3u8?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmODBjNTQ3NDIxMDU3LjI0MDU2MDE1IiwidGltZSI6MTYwNTI4MzExN30=' for reading
[hls @ 0x5627c50f2800] Skip ('#EXT-X-VERSION:3')
[hls @ 0x5627c50f2800] Opening 'http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/enc_5f80c54914f03.key' for reading
[hls @ 0x5627c50f2800] Opening 'crypto+http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res240/index0.ts' for reading
[hls @ 0x5627c50f2800] Opening 'http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/enc_5f80c54914f03.key' for reading
[hls @ 0x5627c50f2800] Opening 'crypto+http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res360/index0.ts' for reading
Input #0, hls, from 'http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/index.m3u8?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmODBjNTQ3NDIxMDU3LjI0MDU2MDE1IiwidGltZSI6MTYwNTI4MzExN30=':
  Duration: 00:00:13.21, start: 1.460111, bitrate: 0 kb/s
  Program 0
    Metadata:
      variant_bitrate : 300000
    Stream #0:0: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 426x240 [SAR 640:639 DAR 16:9], 24 fps, 24 tbr, 90k tbn, 48 tbc
    Metadata:
      variant_bitrate : 300000
    Stream #0:1: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 300000
  Program 1
    Metadata:
      variant_bitrate : 600000
    Stream #0:2: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 90k tbn, 48 tbc
    Metadata:
      variant_bitrate : 600000
    Stream #0:3: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 600000
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5fa3f4e37ffb65.33430678_720.mp4?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmYTNmNGUzN2ZmYjY1LjMzNDMwNjc4IiwidGltZSI6MTYwNTI4MzExN30=':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.29.100
  Duration: 00:00:30.60, start: 0.000000, bitrate: 37 kb/s
    Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 26 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc. Created on: 10/16/2018.
    Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc. Created on: 10/16/2018.
Input #2, png_pipe, from '/var/www/gdrive/htdocs/YouPHPTube-Encoder/videos/videosListToLive/192.168.1.4/watermark.png':
  Duration: N/A, bitrate: N/A
    Stream #2:0: Video: png, rgba(pc), 1280x720 [SAR 3780:3780 DAR 16:9], 25 tbr, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 (h264) -> setdar
  Stream #0:1 (aac) -> concat:in0:a0
  Stream #1:0 (h264) -> setdar
  Stream #1:1 (aac) -> concat:in1:a0
  Stream #2:0 (png) -> overlay:overlay
  overlay -> Stream #0:0 (libx264)
  concat:out:a0 -> Stream #0:1 (aac)
Press [q] to stop, [?] for help
[libx264 @ 0x5627c5267f40] using SAR=1/1
[libx264 @ 0x5627c5267f40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x5627c5267f40] profile High, level 3.1
[libx264 @ 0x5627c5267f40] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - 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=50 keyint_min=5 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=cbr mbtree=1 bitrate=3000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=3000 vbv_bufsize=6000 nal_hrd=none filler=0 ip_ratio=1.40 aq=1:1.00
Output #0, flv, to 'rtmp://encoder.gdrive.local/live?p=f321d14cdeeb7cded7489f504fa8862b/5fa3731d4f8a6_161':
  Metadata:
    encoder         : Lavf58.29.100
    Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 3000 kb/s, 30 fps, 1k tbn, 30 tbc (default)
    Metadata:
      encoder         : Lavc58.54.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 3000000/0/3000000 buffer size: 6000000 vbv_delay: -1
    Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      encoder         : Lavc58.54.100 aac
[hls @ 0x5627c50f2800] Opening 'crypto+http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res240/index1.ts' for reading
[hls @ 0x5627c50f2800] No longer receiving playlist 1 ('http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res360/index.m3u8?token=eyJzYWx0IjoiaHR0cDpcL1wvMTkyLjE2OC4xLjRcL1lvdVBIUFR1YmVcLyIsInRva2VuVGltZU91dCI6IjIxNjAwIiwiZmlsZW5hbWUiOiJfWVBUdW5pcWlkXzVmODBjNTQ3NDIxMDU3LjI0MDU2MDE1IiwidGltZSI6MTYwNTI4MzExN30=')
[hls @ 0x5627c50f2800] Opening 'crypto+http://192.168.1.4/YouPHPTube/videos/_YPTuniqid_5f80c547421057.24056015/res240/index2.ts' for reading
[flv @ 0x5627c52635c0] Failed to update header with correct duration.10.4kbits/s speed=1.43x
[flv @ 0x5627c52635c0] Failed to update header with correct filesize.
frame= 1313 fps= 43 q=-1.0 Lsize=    5937kB time=00:00:43.81 bitrate=1110.1kbits/s speed=1.43x
video:5662kB audio:218kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.976283%
[libx264 @ 0x5627c5267f40] frame I:70    Avg QP: 4.15  size: 27705
[libx264 @ 0x5627c5267f40] frame P:423   Avg QP: 4.16  size:  6930
[libx264 @ 0x5627c5267f40] frame B:820   Avg QP: 1.56  size:  1130
[libx264 @ 0x5627c5267f40] consecutive B-frames: 13.6%  7.9%  4.8% 73.7%
[libx264 @ 0x5627c5267f40] mb I  I16..4: 69.2% 24.3%  6.4%
[libx264 @ 0x5627c5267f40] mb P  I16..4:  2.0%  9.4%  1.6%  P16..4:  1.7%  0.3%  0.1%  0.0%  0.0%    skip:85.0%
[libx264 @ 0x5627c5267f40] mb B  I16..4:  0.1%  0.3%  0.2%  B16..8:  1.0%  0.1%  0.0%  direct: 0.6%  skip:97.6%  L0:57.9% L1:40.1% BI: 2.0%
[libx264 @ 0x5627c5267f40] 8x8 transform intra:45.7% inter:71.9%
[libx264 @ 0x5627c5267f40] coded y,uvDC,uvAC intra: 36.1% 46.9% 43.4% inter: 0.4% 1.1% 0.7%
[libx264 @ 0x5627c5267f40] i16 v,h,dc,p: 93%  4%  3%  0%
[libx264 @ 0x5627c5267f40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 65%  8% 16%  1%  2%  3%  1%  2%  2%
[libx264 @ 0x5627c5267f40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 50% 20% 10%  3%  4%  5%  3%  4%  2%
[libx264 @ 0x5627c5267f40] i8c dc,h,v,p: 61% 10% 25%  4%
[libx264 @ 0x5627c5267f40] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x5627c5267f40] ref P L0: 72.6%  2.7% 18.0%  6.7%
[libx264 @ 0x5627c5267f40] ref B L0: 89.1%  9.4%  1.5%
[libx264 @ 0x5627c5267f40] ref B L1: 98.0%  2.0%
[libx264 @ 0x5627c5267f40] kb/s:1059.69
[aac @ 0x5627c51d25c0] Qavg: 46028.516
avideo@ubuntu:~$


    


  • FFMPEG : How to add volume to filter complex

    7 novembre 2020, par Martin

    This is my filter complex script :

    


    -filter_complex "[0:a]highpass=f=200,lowpass=f=3000[mic];[mic][1:a]amix=duration=shortest[a]" -map 0:v -map "[a]"

    


    I would like to add in here volume steering for each audio (there are two)
I know that "volume=0.5" should be added there somewhere but i don't know where. Could someone help me please ?

    


  • Use FFMPEG mux flv and send rtmp on IOS

    5 novembre 2020, par downloss

    I would like to use iphone camera & microphone to capture information pushed out through FFMPEG RTMP Streaming

    



    The following Function capture information on IOS

    



    - (void)captureOutput:(AVCaptureOutput *)captureOutput  didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
{    
    if (connection == videoCaptureConnection)
    {
        [manager264 encoderToH264:sampleBuffer];
    }
    else if (connection == audioCaptureConnection)
    {
        [manager264 encoderToMP3:sampleBuffer];
    }
}


    



    Initialization FFMPEG

    



    - (int)setX264Resource
{
    Global_Variables_VVV = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    avformat_network_init();
    av_register_all();

    pFormatCtx = avformat_alloc_context();
    avformat_alloc_output_context2(&pFormatCtx, NULL, "flv", out_file);
    fmt = pFormatCtx->oformat;

    //Open output URL
    if (avio_open(&pFormatCtx->pb, out_file, AVIO_FLAG_READ_WRITE) < 0)
    {
        printf("Failed to open output file! \n");
        return -1;
    }

    /* Add the audio and video streams using the default format codecs
     * and initialize the codecs. */
    video_st = NULL;
    audio_st = NULL;
   if (fmt->video_codec != AV_CODEC_ID_NONE) {
        video_st = add_stream(pFormatCtx, &pCodec, AV_CODEC_ID_H264);
    }
   if (fmt->audio_codec != AV_CODEC_ID_NONE) {
        audio_st = add_stream(pFormatCtx, &aCodec, AV_CODEC_ID_MP3);
    }

    /* Now that all the parameters are set, we can open the audio and
     * video codecs and allocate the necessary encode buffers. */
    if (video_st)
        [self open_video:pFormatCtx avcodec:pCodec avstream:video_st];

    if (audio_st)
        [self open_audio:pFormatCtx avcodec:aCodec avstream:audio_st];

    // Show some Information
    av_dump_format(pFormatCtx, 0, out_file, 1);

    //Write File Header
    avformat_write_header(pFormatCtx, NULL);

    av_new_packet(&pkt, picture_size);
    av_new_packet(&pkt2, picture_size);

    AVCodecContext *c = video_st->codec;

    y_size = c->width * c->height;

    if (pFrame)
        pFrame->pts = 0;

    if(aFrame)
    {
        aFrame->pts = 0;
    }

    return 0;
}

static AVStream *add_stream(AVFormatContext *oc, AVCodec **codec, enum AVCodecID codec_id)
{
    AVCodecContext *c;
    AVStream *st;
    /* find the encoder */
    *codec = avcodec_find_encoder(codec_id);
    if (!(*codec))
    {
        NSLog(@"Could not find encoder for '%s'\n",
          avcodec_get_name(codec_id));
    }
    st = avformat_new_stream(oc, *codec);
    if (!st)
    {
        NSLog(@"Could not allocate stream\n");
    }
    st->id = oc->nb_streams-1;
    c = st->codec;
    switch ((*codec)->type)
    {
        case AVMEDIA_TYPE_AUDIO:
            c->codec_id = AV_CODEC_ID_MP3;
            c->codec_type = AVMEDIA_TYPE_AUDIO;
            c->channels = 1;

            c->sample_fmt = AV_SAMPLE_FMT_S16P;
            c->bit_rate = 128000;
            c->sample_rate = 44100;
            c->channel_layout = AV_CH_LAYOUT_MONO;
            break;
        case AVMEDIA_TYPE_VIDEO:
            c->codec_id = AV_CODEC_ID_H264;
            c->codec_type=AVMEDIA_TYPE_VIDEO;
            /* Resolution must be a multiple of two. */
            c->width    = 720;
            c->height   = 1280;
            /* timebase: This is the fundamental unit of time (in seconds) in terms
             * of which frame timestamps are represented. For fixed-fps content,
             * timebase should be 1/framerate and timestamp increments should be
             * identical to 1. */
            c->time_base.den = 30;
            c->time_base.num = 1;
            c->gop_size      = 15; /* emit one intra frame every twelve frames at most */
            c->pix_fmt       = PIX_FMT_YUV420P;
            c->max_b_frames = 0;
            c->bit_rate = 3000000;
            c->qmin = 10;
            c->qmax = 51;

            break;
        default:
            break;
    }
    /* Some formats want stream headers to be separate. */
    if (oc->oformat->flags & AVFMT_GLOBALHEADER)
        c->flags |= CODEC_FLAG_GLOBAL_HEADER;
    return st;
}


    



    SampleBuffer will turn into H264 and pushed out RTMP Streaming

    



    - (void)encoderToH264:(CMSampleBufferRef)sampleBuffer
{
    CVPixelBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
    if (CVPixelBufferLockBaseAddress(imageBuffer, 0) == kCVReturnSuccess)
    {
        UInt8 *bufferbasePtr = (UInt8 *)CVPixelBufferGetBaseAddress(imageBuffer);
        UInt8 *bufferPtr = (UInt8 *)CVPixelBufferGetBaseAddressOfPlane(imageBuffer,0);
        UInt8 *bufferPtr1 = (UInt8 *)CVPixelBufferGetBaseAddressOfPlane(imageBuffer,1);
        size_t buffeSize = CVPixelBufferGetDataSize(imageBuffer);
        size_t width = CVPixelBufferGetWidth(imageBuffer);
        size_t height = CVPixelBufferGetHeight(imageBuffer);
        size_t bytesPerRow = CVPixelBufferGetBytesPerRow(imageBuffer);
        size_t bytesrow0 = CVPixelBufferGetBytesPerRowOfPlane(imageBuffer,0);
        size_t bytesrow1  = CVPixelBufferGetBytesPerRowOfPlane(imageBuffer,1);
        size_t bytesrow2 = CVPixelBufferGetBytesPerRowOfPlane(imageBuffer,2);
        UInt8 *yuv420_data = (UInt8 *)malloc(width * height *3/ 2); // buffer to store YUV with layout YYYYYYYYUUVV


        /* convert NV12 data to YUV420*/
        UInt8 *pY = bufferPtr ;
        UInt8 *pUV = bufferPtr1;
        UInt8 *pU = yuv420_data + width*height;
        UInt8 *pV = pU + width*height/4;
        for(int i =0;i/Read raw YUV data
        picture_buf = yuv420_data;
        pFrame->data[0] = picture_buf;              // Y
        pFrame->data[1] = picture_buf+ y_size;      // U
        pFrame->data[2] = picture_buf+ y_size*5/4;  // V

        int got_picture = 0;

        // Encode
        pFrame->width = 720;
        pFrame->height = 1280;
        pFrame->format = PIX_FMT_YUV420P;

        AVCodecContext *c = video_st->codec;
        int ret = avcodec_encode_video2(c, &pkt, pFrame, &got_picture);
        if(ret < 0)
        {
            printf("Failed to encode! \n");
        }

        if (got_picture==1)
        {
            /* Compute current audio and video time. */
            video_time = video_st ? video_st->pts.val * av_q2d(video_st->time_base) : 0.0;
            pFrame->pts += av_rescale_q(1, video_st->codec->time_base, video_st->time_base);

            if(pkt.size != 0)
            {
                printf("Succeed to encode frame: %5lld\tsize:%5d\n", pFrame->pts, pkt.size);
                pkt.stream_index = video_st->index;
                ret = av_write_frame(pFormatCtx, &pkt);
                av_free_packet(&pkt);
            }
        }
        free(yuv420_data);
    }
    CVPixelBufferUnlockBaseAddress(imageBuffer, 0);
}


    



    SampleBuffer will turn into MP3 and pushed out RTMP Streaming

    



    -(void)encoderToMP3:(CMSampleBufferRef)sampleBuffer
{
    CMSampleTimingInfo timing_info;
    CMSampleBufferGetSampleTimingInfo(sampleBuffer, 0, &timing_info);
    double  pts=0;
    double  dts=0;
    AVCodecContext *c;
    int got_packet, ret;
    c = audio_st->codec;
    CMItemCount numSamples = CMSampleBufferGetNumSamples(sampleBuffer);

    NSUInteger channelIndex = 0;

    CMBlockBufferRef audioBlockBuffer = CMSampleBufferGetDataBuffer(sampleBuffer);

    size_t audioBlockBufferOffset = (channelIndex * numSamples * sizeof(SInt16));
    size_t lengthAtOffset = 0;
    size_t totalLength = 0;
    SInt16 *samples = NULL;
    CMBlockBufferGetDataPointer(audioBlockBuffer, audioBlockBufferOffset, &lengthAtOffset, &totalLength, (char **)(&samples));

    const AudioStreamBasicDescription *audioDescription = CMAudioFormatDescriptionGetStreamBasicDescription(CMSampleBufferGetFormatDescription(sampleBuffer));

    SwrContext *swr = swr_alloc();

    int in_smprt = (int)audioDescription->mSampleRate;
    av_opt_set_int(swr, "in_channel_layout",  AV_CH_LAYOUT_MONO, 0);
    av_opt_set_int(swr, "out_channel_layout", audio_st->codec->channel_layout,  0);

    av_opt_set_int(swr, "in_channel_count", audioDescription->mChannelsPerFrame,  0);
    av_opt_set_int(swr, "out_channel_count", 1,  0);

    av_opt_set_int(swr, "out_channel_layout", audio_st->codec->channel_layout,  0);
    av_opt_set_int(swr, "in_sample_rate",     audioDescription->mSampleRate,0);

    av_opt_set_int(swr, "out_sample_rate",    audio_st->codec->sample_rate,0);

    av_opt_set_sample_fmt(swr, "in_sample_fmt",  AV_SAMPLE_FMT_S16, 0);

    av_opt_set_sample_fmt(swr, "out_sample_fmt", audio_st->codec->sample_fmt,  0);

    swr_init(swr);
    uint8_t **input = NULL;
    int src_linesize;
    int in_samples = (int)numSamples;
    ret = av_samples_alloc_array_and_samples(&input, &src_linesize, audioDescription->mChannelsPerFrame, in_samples, AV_SAMPLE_FMT_S16P, 0);

    *input=(uint8_t*)samples;
    uint8_t *output=NULL;

    int out_samples = av_rescale_rnd(swr_get_delay(swr, in_smprt) +in_samples, (int)audio_st->codec->sample_rate, in_smprt, AV_ROUND_UP);

    av_samples_alloc(&output, NULL, audio_st->codec->channels, out_samples, audio_st->codec->sample_fmt, 0);
    in_samples = (int)numSamples;
    out_samples = swr_convert(swr, &output, out_samples, (const uint8_t **)input, in_samples);

    aFrame->nb_samples =(int) out_samples;

    ret = avcodec_fill_audio_frame(aFrame, audio_st->codec->channels, audio_st->codec->sample_fmt,
                                   (uint8_t *)output,
                                   (int) out_samples *
                                   av_get_bytes_per_sample(audio_st->codec->sample_fmt) *
                                   audio_st->codec->channels, 1);
    if (ret < 0)
    {
        fprintf(stderr, "Error fill audio frame: %s\n", av_err2str(ret));
    }
    aFrame->channel_layout = audio_st->codec->channel_layout;
    aFrame->channels=audio_st->codec->channels;
    aFrame->sample_rate= audio_st->codec->sample_rate;

    if (timing_info.presentationTimeStamp.timescale!=0)
        pts=(double) timing_info.presentationTimeStamp.value/timing_info.presentationTimeStamp.timescale;


    aFrame->pts = pts*audio_st->time_base.den;
    aFrame->pts = av_rescale_q(aFrame->pts, audio_st->time_base, audio_st->codec->time_base);

    ret = avcodec_encode_audio2(c, &pkt2, aFrame, &got_packet);

    if (ret < 0)
    {
        fprintf(stderr, "Error encoding audio frame: %s\n", av_err2str(ret));
    }
    swr_free(&swr);

    if (got_packet)
    {
        pkt2.stream_index = audio_st->index;        

        // Write the compressed frame to the media file.

        ret = av_interleaved_write_frame(pFormatCtx, &pkt2);
        if (ret != 0)
        {
            fprintf(stderr, "Error while writing audio frame: %s\n", av_err2str(ret));
            av_free_packet(&pkt2);
        }
    }
}


    



    Soon "Broken pipe" problem occurs after execution.
PTS is currently feeling is not adjusted, but do not know how to adjust the PTS.

    



    2016-03-09 16:57:41.058 PoliceCamPlayer[1004:193465] recordVideo....
[libx264 @ 0x12f8b6e00] using cpu capabilities: ARMv8 NEON
[libx264 @ 0x12f8b6e00] profile Constrained Baseline, level 3.1
[libx264 @ 0x12f8b6e00] 264 - core 148 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=1:0:0 analyse=0x1:0x111 me=hex 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=2 lookahead_threads=2 sliced_threads=1 slices=2 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=15 keyint_min=1 scenecut=40 intra_refresh=0 rc=abr mbtree=0 bitrate=3000 ratetol=1.0 qcomp=0.60 qpmin=25 qpmax=51 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, flv, to 'rtmp://XXX.XX.XXX.XX/myapp/jackal':
    Stream #0:0: Video: h264 (libx264), yuv420p, 720x1280, q=25-51, 3000 kb/s, 23 tbc
    Stream #0:1: Audio: mp3 (libmp3lame), 44100 Hz, mono, s16p, 64 kb/s
[flv @ 0x12f8b5400] Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated. Set AVStream.time_base instead.
[flv @ 0x12f8b5400] Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated. Set AVStream.time_base instead.
[libx264 @ 0x12f8b6e00] Provided packet is too small, needs to be 33468
Failed to encode! 
Audio_pts:4154432515 pts_time:4.15443e+06 dts:4154432515 dts_time:4.15443e+06 duration:1152 duration_time:1.152 stream_index:1
Video_pts:43 pts_time:0.043 dts:43 dts_time:0.043 duration:0 duration_time:0 stream_index:0
Audio_pts:4154433667 pts_time:4.15443e+06 dts:4154433667 dts_time:4.15443e+06 duration:1152 duration_time:1.152 stream_index:1
Audio_pts:4154434854 pts_time:4.15443e+06 dts:4154434854 dts_time:4.15443e+06 duration:1152 duration_time:1.152 stream_index:1
Video_pts:86 pts_time:0.086 dts:86 dts_time:0.086 duration:0 duration_time:0 stream_index:0
Audio_pts:4154435996 pts_time:4.15444e+06 dts:4154435996 dts_time:4.15444e+06 duration:1152 duration_time:1.152 stream_index:1
Audio_pts:4154437138 pts_time:4.15444e+06 dts:4154437138 dts_time:4.15444e+06 duration:1152 duration_time:1.152 stream_index:1
Video_pts:129 pts_time:0.129 dts:129 dts_time:0.129 duration:0 duration_time:0 stream_index:0
Audio_pts:4154438281 pts_time:4.15444e+06 dts:4154438281 dts_time:4.15444e+06 duration:1152 duration_time:1.152 stream_index:1
Video_pts:172 pts_time:0.172 dts:172 dts_time:0.172 duration:0 duration_time:0 stream_index:0
Audio_pts:4154439467 pts_time:4.15444e+06 dts:4154439467 dts_time:4.15444e+06 duration:1152 duration_time:1.152 stream_index:1
Video_pts:215 pts_time:0.215 dts:215 dts_time:0.215 duration:0 duration_time:0 stream_index:0
Audio_pts:4154440609 pts_time:4.15444e+06 dts:4154440609 dts_time:4.15444e+06 duration:1152 duration_time:1.152 stream_index:1
Audio_pts:4154441752 pts_time:4.15444e+06 dts:4154441752 dts_time:4.15444e+06 duration:1152 duration_time:1.152 stream_index:1
Video_pts:258 pts_time:0.258 dts:258 dts_time:0.258 duration:0 duration_time:0 stream_index:0
Audio_pts:4154442884 pts_time:4.15444e+06 dts:4154442884 dts_time:4.15444e+06 duration:1152 duration_time:1.152 stream_index:1
Audio_pts:4154444071 pts_time:4.15444e+06 dts:4154444071 dts_time:4.15444e+06 duration:1152 duration_time:1.152 stream_index:1
Video_pts:301 pts_time:0.301 dts:301 dts_time:0.301 duration:0 duration_time:0 stream_index:0
Audio_pts:4154445213 pts_time:4.15445e+06 dts:4154445213 dts_time:4.15445e+06 duration:1152 duration_time:1.152 stream_index:1
Audio_pts:4154446355 pts_time:4.15445e+06 dts:4154446355 dts_time:4.15445e+06 duration:1152 duration_time:1.152 stream_index:1
Video_pts:344 pts_time:0.344 dts:344 dts_time:0.344 duration:0 duration_time:0 stream_index:0
Audio_pts:4154447498 pts_time:4.15445e+06 dts:4154447498 dts_time:4.15445e+06 duration:1152 duration_time:1.152 stream_index:1
Video_pts:387 pts_time:0.387 dts:387 dts_time:0.387 duration:0 duration_time:0 stream_index:0
Audio_pts:4154448640 pts_time:4.15445e+06 dts:4154448640 dts_time:4.15445e+06 duration:1152 duration_time:1.152 stream_index:1
Audio_pts:4154449826 pts_time:4.15445e+06 dts:4154449826 dts_time:4.15445e+06 duration:1152 duration_time:1.152 stream_index:1
Video_pts:430 pts_time:0.43 dts:430 dts_time:0.43 duration:0 duration_time:0 stream_index:0
Audio_pts:4154450969 pts_time:4.15445e+06 dts:4154450969 dts_time:4.15445e+06 duration:1152 duration_time:1.152 stream_index:1
Audio_pts:4154452101 pts_time:4.15445e+06 dts:4154452101 dts_time:4.15445e+06 duration:1152 duration_time:1.152 stream_index:1
...................
...................
...................
Video_pts:4343 pts_time:4.343 dts:4343 dts_time:4.343 duration:0 duration_time:0 stream_index:0
Audio_pts:4154622619 pts_time:4.15462e+06 dts:4154622619 dts_time:4.15462e+06 duration:1152 duration_time:1.152 stream_index:1
Video_pts:4386 pts_time:4.386 dts:4386 dts_time:4.386 duration:0 duration_time:0 stream_index:0
Audio_pts:4154623761 pts_time:4.15462e+06 dts:4154623761 dts_time:4.15462e+06 duration:1152 duration_time:1.152 stream_index:1
Audio_pts:4154624903 pts_time:4.15462e+06 dts:4154624903 dts_time:4.15462e+06 duration:1152 duration_time:1.152 stream_index:1
Audio_pts:4154626090 pts_time:4.15463e+06 dts:4154626090 dts_time:4.15463e+06 duration:1152 duration_time:1.152 stream_index:1
Video_pts:4429 pts_time:4.429 dts:4429 dts_time:4.429 duration:0 duration_time:0 stream_index:0
Audio_pts:4154627222 pts_time:4.15463e+06 dts:4154627222 dts_time:4.15463e+06 duration:1152 duration_time:1.152 stream_index:1
Video_pts:4472 pts_time:4.472 dts:4472 dts_time:4.472 duration:0 duration_time:0 stream_index:0
Error while writing audio frame: Broken pipe
Audio_pts:4154628365 pts_time:4.15463e+06 dts:4154628365 dts_time:4.15463e+06 duration:1152 duration_time:1.152 stream_index:1
Error while writing audio frame: Broken pipe
Audio_pts:4154629507 pts_time:4.15463e+06 dts:4154629507 dts_time:4.15463e+06 duration:1152 duration_time:1.152 stream_index:1
Error while writing audio frame: Broken pipe
Audio_pts:4154630693 pts_time:4.15463e+06 dts:4154630693 dts_time:4.15463e+06 duration:1152 duration_time:1.152 stream_index:1
Error while writing audio frame: Broken pipe
Audio_pts:4154631836 pts_time:4.15463e+06 dts:4154631836 dts_time:4.15463e+06 duration:1152 duration_time:1.152 stream_index:1
Error while writing audio frame: Broken pipe
Audio_pts:4154632978 pts_time:4.15463e+06 dts:4154632978 dts_time:4.15463e+06 duration:1152 duration_time:1.152 stream_index:1
.......................
.......................
.......................
2016-03-09 16:57:49.345 PoliceCamPlayer[1004:193465] stopRecord!!!
Video_pts:7783 pts_time:7.783 dts:7783 dts_time:7.783 duration:0 duration_time:0 stream_index:0
[flv @ 0x12f8b5400] Failed to update header with correct duration.
[flv @ 0x12f8b5400] Failed to update header with correct filesize.
[libx264 @ 0x12f8b6e00] frame I:28    Avg QP:25.36  size: 24181
[libx264 @ 0x12f8b6e00] frame P:154   Avg QP:25.34  size:  6603
[libx264 @ 0x12f8b6e00] mb I  I16..4: 80.9%  0.0% 19.1%
[libx264 @ 0x12f8b6e00] mb P  I16..4:  5.9%  0.0%  0.2%  P16..4: 28.2%  4.4%  1.0%  0.0%  0.0%    skip:60.2%
[libx264 @ 0x12f8b6e00] final ratefactor: 16.70
[libx264 @ 0x12f8b6e00] coded y,uvDC,uvAC intra: 35.8% 9.3% 0.4% inter: 8.8% 1.6% 0.0%
[libx264 @ 0x12f8b6e00] i16 v,h,dc,p: 28% 26% 26% 21%
[libx264 @ 0x12f8b6e00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 13% 26% 25%  3%  7%  4%  5%  3% 13%
[libx264 @ 0x12f8b6e00] i8c dc,h,v,p: 85%  9%  5%  0%
[libx264 @ 0x12f8b6e00] kb/s:1712.63