Recherche avancée

Médias (91)

Autres articles (97)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • 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 (...)

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

Sur d’autres sites (8824)

  • How to write unit tests for your plugin – Introducing the Piwik Platform

    17 novembre 2014, par Thomas Steur — Development

    This is the next post of our blog series where we introduce the capabilities of the Piwik platform (our previous post was How to verify user permissions). This time you’ll learn how to write unit tests in Piwik. For this tutorial you will need to have basic knowledge of PHP, PHPUnit and the Piwik platform.

    When is a test a unit test ?

    There are many different opinions on this and it can be sometimes hard to decide. At Piwik we consider a test as a unit test if only a single method or class is being tested and if a test does not have a dependency to the filesystem, web, config, database or to any other plugin.

    If a test is slow it can be an indicator that it is not a unit test. “Slow” is of course a bit vague. We will cover how to write other type of tests, such as integration tests, in one of our next blog posts.

    Getting started

    In this post, we assume that you have already installed Piwik 2.9.0 or later via git, set up your development environment and created a plugin. If not, visit the Piwik Developer Zone where you’ll find the tutorial Setting up Piwik and other Guides that help you to develop a plugin.

    Let’s create a unit test

    We start by using the Piwik Console to create a new unit test :

    ./console generate:test --testtype unit

    The command will ask you to enter the name of the plugin the created test should belong to. I will use the plugin name “Insights”. Next it will ask you for the name of the test. Here you usually enter the name of the class you want to test. I will use “Widgets” in this example. There should now be a file plugins/Insights/tests/Unit/WidgetsTest.php which contains already an example to get you started easily :

    1. /**
    2.  * @group Insights
    3.  * @group WidgetsTest
    4.  * @group Plugins
    5.  */
    6. class WidgetsTest extends \PHPUnit_Framework_TestCase
    7. {
    8.  
    9.     public function testSimpleAddition()
    10.     {
    11.         $this->assertEquals(2, 1+1);
    12.     }
    13.  
    14. }

    Télécharger

    We don’t want to cover how you should write your unit test. This is totally up to you. If you have no experience in writing unit tests yet, we recommend to read articles on the topic, or a book, or to watch videos or anything else that will help you learn best.

    Running a test

    To run a test we will use the command tests:run which allows you to execute a test suite, a specific file or a group of tests.

    To verify whether the created test works we will run it as follows :

    ./console tests:run WidgetsTest

    This will run all tests having the group WidgetsTest. As other tests can use the same group you might want to pass the path to your test file instead :

    ./console tests:run plugins/Insights/tests/Unit/Widgets.php

    If you want to run all tests within your plugin pass the name of your plugin as an argument :

    ./console tests:run insights

    Of course you can also define multiple arguments :

    ./console tests:run insights WidgetsTest

    This will execute all tests within the insights plugin having the group WidgetsTest. If you only want to run unit tests within your plugin you can do the following :

    ./console tests:run insights unit

    Advanced features

    Isn’t it easy to create a unit test ? We never even created a file ! You can accomplish even more if you want : You can generate other type of tests, you can run tests on Amazon’s AWS and more. Unfortunately, not everything is documented yet so we recommend to discover more features by executing the commands ./console list tests and ./console help tests:run.

    If you have any feedback regarding our APIs or our guides in the Developer Zone feel free to send it to us.

  • Piwik awarded Gold Prize at Open Source Software World Challenge

    22 décembre 2014, par Matthieu Aubry — About

    We are excited to announce that Piwik has been awarded the Gold Prize in the Open Source Software World Challenge 2014 !

    Winning this award is a testament to the positive impacts of the Piwik platform worldwide. Every day dozens of new people are embracing Piwik to power their web and mobile analytics which gives them full control over their data.

    Every member of the Piwik community, from core developer to beginning user, should be proud to be part of this momentum : congratulations to us all !

    The Open Source World Challenge is the annual competition hosted by the Ministry of Science, ICT and Future Planning of Korea. This competition is mainly intended to promote open source software and expand various exchanges among open source software developers worldwide.

    Piwik Awards

  • Streaming RTP packets using SDP to ffmpeg

    4 avril 2017, par Johnathan Kanarek

    I have RTP packets in node.js server and I want to forward them to ffmpeg.
    I generate SDP files in the node.js server side and execute ffmpeg with the SDP as input.

    SDP :

    v=0
    o=mediasoup 21881725401d4e8d56cbd79694c7e2b6e6cacb4a 0 IN IP4 192.168.193.182
    s=21881725401d4e8d56cbd79694c7e2b6e6cacb4a
    c=IN IP4 192.168.193.182
    t=0 0
    a=group:LS video audio
    m=video 33404 RTP/SAVPF 107
    a=rtpmap:107 H264/90000
    a=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
    a=control:track0
    a=rtcp-fb:107 ccm fir
    a=rtcp-fb:107 nack
    a=rtcp-fb:107 nack pli
    a=rtcp-fb:107 goog-remb
    a=rtcp-fb:107 transport-cc
    a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
    a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
    a=extmap:4 urn:3gpp:video-orientation
    a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
    a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
    a=mid:video
    a=sendrecv
    m=audio 33402 RTP/SAVPF 111
    a=rtpmap:111 opus/48000
    a=fmtp:111 minptime=10;useinbandfec=1
    a=control:track1
    a=rtcp-fb:111 transport-cc
    a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
    a=mid:audio
    a=sendrecv

    Command :

    ffmpeg -max_delay 5000 -reorder_queue_size 16384 -protocol_whitelist file,crypto,udp,rtp -re -i input.sdp -vcodec copy -acodec aac -y output.mp4

    Same with RTMP

    ffmpeg -max_delay 5000 -reorder_queue_size 16384 -protocol_whitelist file,crypto,udp,rtp -re -i input.sdp -vcodec copy -acodec aac -f flv rtmp://127.0.0.1:1935/live/myStream

    I get weird video that plays some vidoe, then get stuck, then plays some audio, back to video and so on, it never plays both video and audio together.

    BTW, when I created separate SDP files for the video and the audio and stream them as two inputs into the same output, I get valid stream but the audio is not in sync (about a second offset).

    ffmpeg -max_delay 5000 -reorder_queue_size 16384 -protocol_whitelist file,crypto,udp,rtp -re -i video.0.sdp -max_delay 5000 -reorder_queue_size 16384 -protocol_whitelist file,crypto,udp,rtp -re -i audio.1.sdp -vcodec copy -acodec aac -shortest -y output.mp4

    What is wrong with my SDP ?

    I tried changing analyzeduration, probesize, rtbufsize, vsync, framerate,
    I even tried to remap the streams using -map 0:v -map 0:a,
    nothing helped

    I also tried to use RTSP server, see log :

    ffmpeg version 3.2 Copyright (c) 2000-2016 the FFmpeg developers
     built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-11)
     configuration: --prefix=/opt/kaltura/ffmpeg-3.2 --libdir=/opt/kaltura/ffmpeg-3.2/lib --shlibdir=/opt/kaltura/ffmpeg-3.2/lib --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC -I/opt/kaltura/include' --extra-ldflags=-L/opt/kaltura/lib --disable-devices --enable-bzlib --enable-libgsm --enable-libmp3lame --enable-libschroedinger --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-avisynth --enable-libxvid --enable-filter=movie --enable-avfilter --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libvpx --enable-libspeex --enable-libass --enable-postproc --enable-pthreads --enable-static --enable-shared --enable-gpl --disable-debug --disable-optimizations --enable-gpl --enable-pthreads --enable-swscale --enable-vdpau --enable-bzlib --disable-devices --enable-filter=movie --enable-version3 --enable-indev=lavfi --enable-x11grab
     libavutil      55. 34.100 / 55. 34.100
     libavcodec     57. 64.100 / 57. 64.100
     libavformat    57. 56.100 / 57. 56.100
     libavdevice    57.  1.100 / 57.  1.100
     libavfilter     6. 65.100 /  6. 65.100
     libswscale      4.  2.100 /  4.  2.100
     libswresample   2.  3.100 /  2.  3.100
     libpostproc    54.  1.100 / 54.  1.100
    Splitting the commandline.
    Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
    Reading option '-max_delay' ... matched as AVOption 'max_delay' with argument '500000'.
    Reading option '-reorder_queue_size' ... matched as AVOption 'reorder_queue_size' with argument '16384'.
    Reading option '-analyzeduration' ... matched as AVOption 'analyzeduration' with argument '2147483647'.
    Reading option '-probesize' ... matched as AVOption 'probesize' with argument '2147483647'.
    Reading option '-protocol_whitelist' ... matched as AVOption 'protocol_whitelist' with argument 'file,crypto,tcp,udp,rtp'.
    Reading option '-re' ... matched as option 're' (read input at native frame rate) with argument '1'.
    Reading option '-i' ... matched as input file with argument 'rtsp://192.168.193.182:5000/IcL8tHJdU9oWEK3rAAAA.sdp'.
    Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'h264'.
    Reading option '-acodec' ... matched as option 'acodec' (force audio codec ('copy' to copy stream)) with argument 'aac'.
    Reading option '-max_interleave_delta' ... matched as AVOption 'max_interleave_delta' with argument '30000000'.
    Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
    Reading option '/opt/mediasoup_sample/recordings/IcL8tHJdU9oWEK3rAAAA.mp4' ... matched as output file.
    Finished splitting the commandline.
    Parsing a group of options: global .
    Applying option loglevel (set logging level) with argument debug.
    Applying option y (overwrite output files) with argument 1.
    Successfully parsed a group of options.
    Parsing a group of options: input file rtsp://192.168.193.182:5000/IcL8tHJdU9oWEK3rAAAA.sdp.
    Applying option re (read input at native frame rate) with argument 1.
    Successfully parsed a group of options.
    Opening an input file: rtsp://192.168.193.182:5000/IcL8tHJdU9oWEK3rAAAA.sdp.
    [rtsp @ 0x19b4fa0] SDP:
    v=0
    o=mediasoup IcL8tHJdU9oWEK3rAAAA 0 IN IP4 192.168.193.182
    s=IcL8tHJdU9oWEK3rAAAA
    c=IN IP4 192.168.193.182
    t=0 0
    a=group:LS audio video
    m=audio 0 RTP/SAVPF 111
    a=rtpmap:111 opus/48000
    a=fmtp:111 minptime=10;useinbandfec=1
    a=control:streamid=0
    a=rtcp-fb:111 transport-cc
    a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
    a=mid:audio
    a=sendrecv
    a=rtcp-mux
    m=video 0 RTP/SAVPF 107
    a=rtpmap:107 H264/90000
    a=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
    a=control:streamid=1
    a=rtcp-fb:107 ccm fir
    a=rtcp-fb:107 nack
    a=rtcp-fb:107 nack pli
    a=rtcp-fb:107 goog-remb
    a=rtcp-fb:107 transport-cc
    a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
    a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
    a=extmap:4 urn:3gpp:video-orientation
    a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
    a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
    a=mid:video
    a=sendrecv
    a=rtcp-mux

    [rtsp @ 0x19b4fa0] audio codec set to: opus
    [rtsp @ 0x19b4fa0] audio samplerate set to: 48000
    [rtsp @ 0x19b4fa0] audio channels set to: 1
    [rtsp @ 0x19b4fa0] video codec set to: h264
    [rtsp @ 0x19b4fa0] RTP Packetization Mode: 1
    [rtsp @ 0x19b4fa0] RTP Profile IDC: 42 Profile IOP: e0 Level: 1f
    [udp @ 0x19b5d60] end receive buffer size reported is 131072
    [udp @ 0x19ba020] end receive buffer size reported is 131072
    [rtsp @ 0x19b4fa0] setting jitter buffer size to 16384
    [udp @ 0x19b7a00] end receive buffer size reported is 131072
    [udp @ 0x19daca0] end receive buffer size reported is 131072
    [rtsp @ 0x19b4fa0] setting jitter buffer size to 16384
    [rtsp @ 0x19b4fa0] hello state=0
    [h264 @ 0x19b9ac0] non-existing PPS 0 referenced
    [h264 @ 0x19b9ac0] nal_unit_type: 5, nal_ref_idc: 3
       Last message repeated 3 times
    [h264 @ 0x19b9ac0] non-existing PPS 0 referenced
    [h264 @ 0x19b9ac0] decode_slice_header error
    [h264 @ 0x19b9ac0] non-existing PPS 0 referenced
    [h264 @ 0x19b9ac0] decode_slice_header error
    [h264 @ 0x19b9ac0] non-existing PPS 0 referenced
    [h264 @ 0x19b9ac0] decode_slice_header error
    [h264 @ 0x19b9ac0] non-existing PPS 0 referenced
    [h264 @ 0x19b9ac0] decode_slice_header error
    [h264 @ 0x19b9ac0] no frame!
    [h264 @ 0x19b9ac0] non-existing PPS 0 referenced
    [h264 @ 0x19b9ac0] nal_unit_type: 9, nal_ref_idc: 0
    [h264 @ 0x19b9ac0] nal_unit_type: 1, nal_ref_idc: 3
       Last message repeated 3 times
    [h264 @ 0x19b9ac0] non-existing PPS 0 referenced
    [h264 @ 0x19b9ac0] decode_slice_header error
    [h264 @ 0x19b9ac0] non-existing PPS 0 referenced
    [h264 @ 0x19b9ac0] decode_slice_header error
    [h264 @ 0x19b9ac0] non-existing PPS 0 referenced
    [h264 @ 0x19b9ac0] decode_slice_header error
    [h264 @ 0x19b9ac0] non-existing PPS 0 referenced
    [h264 @ 0x19b9ac0] decode_slice_header error
    [h264 @ 0x19b9ac0] no frame!
    [h264 @ 0x19b9ac0] non-existing PPS 0 referenced
    [h264 @ 0x19b9ac0] nal_unit_type: 9, nal_ref_idc: 0
    [h264 @ 0x19b9ac0] nal_unit_type: 1, nal_ref_idc: 3
       Last message repeated 3 times

       ... a lot of the same ...

    [h264 @ 0x19b9ac0] non-existing PPS 0 referenced
    [h264 @ 0x19b9ac0] decode_slice_header error
    [h264 @ 0x19b9ac0] non-existing PPS 0 referenced
    [h264 @ 0x19b9ac0] decode_slice_header error
    [h264 @ 0x19b9ac0] non-existing PPS 0 referenced
    [h264 @ 0x19b9ac0] decode_slice_header error
    [h264 @ 0x19b9ac0] non-existing PPS 0 referenced
    [h264 @ 0x19b9ac0] decode_slice_header error
    [h264 @ 0x19b9ac0] no frame!
    [h264 @ 0x19b9ac0] nal_unit_type: 9, nal_ref_idc: 0
    [h264 @ 0x19b9ac0] nal_unit_type: 7, nal_ref_idc: 3
    [h264 @ 0x19b9ac0] nal_unit_type: 8, nal_ref_idc: 3
    [h264 @ 0x19b9ac0] nal_unit_type: 5, nal_ref_idc: 3
       Last message repeated 3 times
    [h264 @ 0x19b9ac0] Reinit context to 640x480, pix_fmt: yuv420p
    [h264 @ 0x19b9ac0] nal_unit_type: 9, nal_ref_idc: 0
    [h264 @ 0x19b9ac0] nal_unit_type: 1, nal_ref_idc: 3
       Last message repeated 3 times
    [h264 @ 0x19b9ac0] nal_unit_type: 9, nal_ref_idc: 0
    [h264 @ 0x19b9ac0] nal_unit_type: 1, nal_ref_idc: 3
       Last message repeated 3 times
    [h264 @ 0x19b9ac0] nal_unit_type: 9, nal_ref_idc: 0
    [h264 @ 0x19b9ac0] nal_unit_type: 1, nal_ref_idc: 3
       Last message repeated 3 times
    [h264 @ 0x19b9ac0] nal_unit_type: 9, nal_ref_idc: 0
    [h264 @ 0x19b9ac0] nal_unit_type: 1, nal_ref_idc: 3
       Last message repeated 3 times
    [h264 @ 0x19b9ac0] nal_unit_type: 9, nal_ref_idc: 0
    [h264 @ 0x19b9ac0] nal_unit_type: 1, nal_ref_idc: 3
       Last message repeated 3 times
    [h264 @ 0x19b9ac0] nal_unit_type: 9, nal_ref_idc: 0
    [h264 @ 0x19b9ac0] nal_unit_type: 1, nal_ref_idc: 3
       Last message repeated 3 times
    [rtsp @ 0x19b4fa0] All info found
    Input #0, rtsp, from 'rtsp://192.168.193.182:5000/IcL8tHJdU9oWEK3rAAAA.sdp':
     Metadata:
       title           : IcL8tHJdU9oWEK3rAAAA
     Duration: N/A, start: 0.000000, bitrate: N/A
       Stream #0:0, 146, 1/48000: Audio: opus, 48000 Hz, mono, fltp
       Stream #0:1, 88, 1/90000: Video: h264 (Constrained Baseline), 1 reference frame, yuv420p(progressive, left), 640x480, 0/1, 30 fps, 30 tbr, 90k tbn, 60 tbc
    Successfully opened the file.
    Parsing a group of options: output file /opt/mediasoup_sample/recordings/IcL8tHJdU9oWEK3rAAAA.mp4.
    Applying option vcodec (force video codec ('copy' to copy stream)) with argument h264.
    Applying option acodec (force audio codec ('copy' to copy stream)) with argument aac.
    Successfully parsed a group of options.
    Opening an output file: /opt/mediasoup_sample/recordings/IcL8tHJdU9oWEK3rAAAA.mp4.
    Matched encoder 'libx264' for codec 'h264'.
    [file @ 0x1b7bb80] Setting default whitelist 'file,crypto'
    Successfully opened the file.
    detected 1 logical cores
    [graph 0 input from stream 0:1 @ 0x1b788c0] Setting 'video_size' to value '640x480'
    [graph 0 input from stream 0:1 @ 0x1b788c0] Setting 'pix_fmt' to value '0'
    [graph 0 input from stream 0:1 @ 0x1b788c0] Setting 'time_base' to value '1/90000'
    [graph 0 input from stream 0:1 @ 0x1b788c0] Setting 'pixel_aspect' to value '0/1'
    [graph 0 input from stream 0:1 @ 0x1b788c0] Setting 'sws_param' to value 'flags=2'
    [graph 0 input from stream 0:1 @ 0x1b788c0] Setting 'frame_rate' to value '30/1'
    [graph 0 input from stream 0:1 @ 0x1b788c0] w:640 h:480 pixfmt:yuv420p tb:1/90000 fr:30/1 sar:0/1 sws_param:flags=2
    [format @ 0x1a78e00] compat: called with args=[yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16]
    [format @ 0x1a78e00] Setting 'pix_fmts' to value 'yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16'
    [AVFilterGraph @ 0x19ba180] query_formats: 4 queried, 3 merged, 0 already done, 0 delayed
    [graph 1 input from stream 0:0 @ 0x1b89ae0] Setting 'time_base' to value '1/48000'
    [graph 1 input from stream 0:0 @ 0x1b89ae0] Setting 'sample_rate' to value '48000'
    [graph 1 input from stream 0:0 @ 0x1b89ae0] Setting 'sample_fmt' to value 'fltp'
    [graph 1 input from stream 0:0 @ 0x1b89ae0] Setting 'channel_layout' to value '0x4'
    [graph 1 input from stream 0:0 @ 0x1b89ae0] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x4
    [audio format for output stream 0:1 @ 0x1a7aa00] Setting 'sample_fmts' to value 'fltp'
    [audio format for output stream 0:1 @ 0x1a7aa00] Setting 'sample_rates' to value '96000|88200|64000|48000|44100|32000|24000|22050|16000|12000|11025|8000|7350'
    [AVFilterGraph @ 0x1a7a6e0] query_formats: 4 queried, 9 merged, 0 already done, 0 delayed
    [h264 @ 0x1b779a0] nal_unit_type: 9, nal_ref_idc: 0
    [h264 @ 0x1b779a0] nal_unit_type: 7, nal_ref_idc: 3
    [h264 @ 0x1b779a0] nal_unit_type: 8, nal_ref_idc: 3
    [h264 @ 0x1b779a0] Ignoring NAL type 9 in extradata
    [libx264 @ 0x1a6b5e0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    [libx264 @ 0x1a6b5e0] profile High, level 3.0
    [libx264 @ 0x1a6b5e0] 264 - core 140 - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - 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=1 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 '/opt/mediasoup_sample/recordings/IcL8tHJdU9oWEK3rAAAA.mp4':
     Metadata:
       title           : IcL8tHJdU9oWEK3rAAAA
       encoder         : Lavf57.56.100
       Stream #0:0, 0, 1/15360: Video: h264 (libx264), 1 reference frame ([33][0][0][0] / 0x0021), yuv420p(left), 640x480, 0/1, q=-1--1, 30 fps, 15360 tbn, 30 tbc
       Metadata:
         encoder         : Lavc57.64.100 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
       Stream #0:1, 0, 1/48000: Audio: aac (LC) ([64][0][0][0] / 0x0040), 48000 Hz, mono, fltp, delay 1024, 69 kb/s
       Metadata:
         encoder         : Lavc57.64.100 aac
    Stream mapping:
     Stream #0:1 -> #0:0 (h264 (native) -> h264 (libx264))
     Stream #0:0 -> #0:1 (opus (native) -> aac (native))
    Press [q] to stop, [?] for help
    cur_dts is invalid (this is harmless if it occurs once at the start per stream)
       Last message repeated 1 times
    [SWR @ 0x1af80a0] Using fltp internally between filters
    cur_dts is invalid (this is harmless if it occurs once at the start per stream)
       Last message repeated 48 times
    [h264 @ 0x1b779a0] nal_unit_type: 5, nal_ref_idc: 3
       Last message repeated 3 times
    [h264 @ 0x1b779a0] Reinit context to 640x480, pix_fmt: yuv420p
    *** 67 dup!
    [libx264 @ 0x1a6b5e0] frame=   0 QP=16.76 NAL=3 Slice:I Poc:0   I:1200 P:0    SKIP:0    size=29147 bytes
    [libx264 @ 0x1a6b5e0] frame=   1 QP=15.49 NAL=2 Slice:P Poc:8   I:1    P:198  SKIP:1001 size=588 bytes

       ... a lot of the same ...

    [libx264 @ 0x1a6b5e0] frame=  25 QP=16.64 NAL=2 Slice:P Poc:56  I:0    P:15   SKIP:1185 size=72 bytes
    [libx264 @ 0x1a6b5e0] frame=  26 QP=27.00 NAL=2 Slice:B Poc:52  I:0    P:18   SKIP:1182 size=44 bytes
    frame=   68 fps= 38 q=29.0 size=      32kB time=00:00:00.80 bitrate= 332.6kbits/s dup=67 drop=0 speed=0.453x    
    [h264 @ 0x1b779a0] nal_unit_type: 9, nal_ref_idc: 0
    [h264 @ 0x1b779a0] nal_unit_type: 1, nal_ref_idc: 3
       Last message repeated 3 times
    [h264 @ 0x1b779a0] nal_unit_type: 9, nal_ref_idc: 0
    [h264 @ 0x1b779a0] nal_unit_type: 1, nal_ref_idc: 3
       Last message repeated 3 times

       ... a lot of the same ...

    *** dropping frame 68 from stream 0 at ts 64
    [h264 @ 0x1b779a0] nal_unit_type: 9, nal_ref_idc: 0
    [h264 @ 0x1b779a0] nal_unit_type: 1, nal_ref_idc: 3
       Last message repeated 3 times
    *** dropping frame 68 from stream 0 at ts 65
    [libx264 @ 0x1a6b5e0] frame=  27 QP=29.00 NAL=0 Slice:B Poc:50  I:0    P:1    SKIP:1199 size=19 bytes
    [h264 @ 0x1b779a0] nal_unit_type: 9, nal_ref_idc: 0
    [h264 @ 0x1b779a0] nal_unit_type: 1, nal_ref_idc: 3
       Last message repeated 3 times

       ... a lot of the same ...

    [libx264 @ 0x1a6b5e0] frame= 362 QP=24.00 NAL=2 Slice:B Poc:208 I:0    P:6    SKIP:1194 size=30 bytes
    [libx264 @ 0x1a6b5e0] frame= 363 QP=26.00 NAL=0 Slice:B Poc:206 I:0    P:0    SKIP:1200 size=19 bytes
    [h264 @ 0x1b779a0] nal_unit_type: 1, nal_ref_idc: 3
    [h264 @ 0x1b779a0] concealing 880 DC, 880 AC, 880 MV errors in P frame
    *** 1 dup!
    [libx264 @ 0x1a6b5e0] frame= 364 QP=26.00 NAL=0 Slice:B Poc:210 I:0    P:0    SKIP:1200 size=19 bytes
    [libx264 @ 0x1a6b5e0] frame= 365 QP=16.71 NAL=2 Slice:P Poc:220 I:0    P:8    SKIP:1192 size=51 bytes
    frame=  407 fps= 16 q=29.0 size=     306kB time=00:00:17.48 bitrate= 143.2kbits/s dup=329 drop=65 speed=0.675x    
    [rtsp @ 0x19b4fa0] max delay reached. need to consume packet
    [rtsp @ 0x19b4fa0] RTP: missed 2 packets
    [h264 @ 0x1b779a0] nal_unit_type: 9, nal_ref_idc: 0
    [h264 @ 0x1b779a0] nal_unit_type: 1, nal_ref_idc: 3
    [h264 @ 0x1b779a0] concealing 920 DC, 920 AC, 920 MV errors in P frame
    *** 1 dup!

       ... a lot of the same ...

    [libx264 @ 0x1a6b5e0] frame= 420 QP=25.50 NAL=0 Slice:B Poc:322 I:0    P:280  SKIP:920  size=282 bytes
    [libx264 @ 0x1a6b5e0] frame= 421 QP=24.51 NAL=2 Slice:P Poc:326 I:0    P:43   SKIP:1157 size=112 bytes
    [aac @ 0x1a79de0] Trying to remove 320 more samples than there are in the queue
    frame=  422 fps=8.7 q=29.0 Lsize=     379kB time=00:00:17.54 bitrate= 176.7kbits/s dup=338 drop=65 speed=0.36x    
    video:240kB audio:123kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 4.257356%
    Input file #0 (rtsp://192.168.193.182:5000/IcL8tHJdU9oWEK3rAAAA.sdp):
     Input stream #0:0 (audio): 725 packets read (54182 bytes); 725 frames decoded (696000 samples);
     Input stream #0:1 (video): 150 packets read (203332 bytes); 150 frames decoded;
     Total: 875 packets (257514 bytes) demuxed
    Output file #0 (/opt/mediasoup_sample/recordings/IcL8tHJdU9oWEK3rAAAA.mp4):
     Output stream #0:0 (video): 422 frames encoded; 422 packets muxed (245681 bytes);
     Output stream #0:1 (audio): 680 frames encoded (696000 samples); 681 packets muxed (126146 bytes);
     Total: 1103 packets (371827 bytes) muxed
    875 frames successfully decoded, 0 decoding errors
    [AVIOContext @ 0x1a6c4e0] Statistics: 60 seeks, 1148 writeouts
    [libx264 @ 0x1a6b5e0] frame I:3     Avg QP:17.89  size: 17026
    [libx264 @ 0x1a6b5e0] frame P:120   Avg QP:18.27  size:  1244
    [libx264 @ 0x1a6b5e0] frame B:299   Avg QP:24.50  size:   149
    [libx264 @ 0x1a6b5e0] consecutive B-frames:  4.7%  1.9%  1.4% 91.9%
    [libx264 @ 0x1a6b5e0] mb I  I16..4: 19.9% 48.9% 31.1%
    [libx264 @ 0x1a6b5e0] mb P  I16..4:  2.1%  5.2%  0.8%  P16..4: 10.3%  1.2%  0.6%  0.0%  0.0%    skip:79.7%
    [libx264 @ 0x1a6b5e0] mb B  I16..4:  0.1%  0.1%  0.0%  B16..8:  5.4%  0.2%  0.0%  direct: 0.8%  skip:93.5%  L0:56.3% L1:43.1% BI: 0.5%
    [libx264 @ 0x1a6b5e0] 8x8 transform intra:60.5% inter:62.3%
    [libx264 @ 0x1a6b5e0] coded y,uvDC,uvAC intra: 40.2% 49.9% 19.0% inter: 0.7% 3.2% 0.1%
    [libx264 @ 0x1a6b5e0] i16 v,h,dc,p: 26% 30%  9% 36%
    [libx264 @ 0x1a6b5e0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 44% 27% 13%  3%  2%  2%  3%  3%  3%
    [libx264 @ 0x1a6b5e0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 38% 28% 11%  3%  5%  4%  5%  4%  3%
    [libx264 @ 0x1a6b5e0] i8c dc,h,v,p: 38% 28% 23% 12%
    [libx264 @ 0x1a6b5e0] Weighted P-Frames: Y:2.5% UV:2.5%
    [libx264 @ 0x1a6b5e0] ref P L0: 82.7%  3.3% 10.6%  3.3%  0.0%
    [libx264 @ 0x1a6b5e0] ref B L0: 86.6% 12.6%  0.7%
    [libx264 @ 0x1a6b5e0] ref B L1: 96.5%  3.5%
    [libx264 @ 0x1a6b5e0] kb/s:139.34
    [aac @ 0x1a79de0] Qavg: 212.691

    Thanks,
    Johnathan Kanarek