Recherche avancée

Médias (0)

Mot : - Tags -/formulaire

Aucun média correspondant à vos critères n’est disponible sur le site.

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 (10319)

  • 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

  • Stream RTP packets to FFMPEG [duplicate]

    21 mars 2017, par Johnathan Kanarek

    This question already has an answer here :

    I get RTP stream from WebRTC server (I used mediasoup) using node.js and I get the decrypted RTP packets raw data from the stream. I want to forward this RTP data to ffmpeg. I create SDP file that describes both the audio and video streams and send the packets through UDP.
    The SDP :

    v=0
    o=mediasoup 7199daf55e496b370e36cd1d25b1ef5b9dff6858 0 IN IP4 192.168.193.182
    s=7199daf55e496b370e36cd1d25b1ef5b9dff6858
    c=IN IP4 192.168.193.182
    t=0 0
    m=audio 33400 RTP/AVP 111
    a=rtpmap:111 /opus/48000
    a=fmtp:111 minptime=10;useinbandfec=1
    a=rtcp-fb:111 transport-cc
    a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
    a=mid:audio
    a=recvonly
    m=video 33402 RTP/AVP 100
    a=rtpmap:100 /VP8/90000
    a=rtcp-fb:100 ccm fir
    a=rtcp-fb:100 nack
    a=rtcp-fb:100 nack pli
    a=rtcp-fb:100 goog-remb
    a=rtcp-fb:100 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=recvonly
    a=rtcp-mux

    The command :
    ffmpeg -loglevel debug -analyzeduration 2147483647 -probesize 2147483647 -protocol_whitelist file,crypto,udp,rtp -re -vcodec vp8 -acodec opus -i test.sdp -vcodec h264 -acodec aac -y output.mp4

    The 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 '-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,udp,rtp'.

    Reading option '-re' ...
    matched as option 're' (read input at native frame rate) with argument '1'.

    Reading option '-vcodec' ...
    matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'vp8'.

    Reading option '-acodec' ...
    matched as option 'acodec' (force audio codec ('copy' to copy stream)) with argument 'opus'.
    Reading option '-i' ... matched as input file with argument 'test.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 '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
    Reading option 'output.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 test.sdp.
    Applying option re (read input at native frame rate) with argument 1.
    Applying option vcodec (force video codec ('copy' to copy stream)) with argument vp8.
    Applying option acodec (force audio codec ('copy' to copy stream)) with argument opus.
    Successfully parsed a group of options.
    Opening an input file: test.sdp.
    [sdp @ 0xb1ef00] Format sdp probed with size=2048 and score=50
    [sdp @ 0xb1ef00] audio codec set to: (null)
    [sdp @ 0xb1ef00] audio samplerate set to: 44100
    [sdp @ 0xb1ef00] audio channels set to: 1
    [sdp @ 0xb1ef00] video codec set to: (null)
    [udp @ 0xb21940] end receive buffer size reported is 131072
    [udp @ 0xb21660] end receive buffer size reported is 131072
    [sdp @ 0xb1ef00] setting jitter buffer size to 500
    [udp @ 0xb21da0] end receive buffer size reported is 131072
    [udp @ 0xb22060] end receive buffer size reported is 131072
    [sdp @ 0xb1ef00] setting jitter buffer size to 500

    [sdp @ 0xb1ef00] Before avformat_find_stream_info() pos: 889 bytes read:889 seeks:0 nb_streams:2

    [vp8 @ 0xb27600] Header size larger than data provided

       Last message repeated 2 times
    [sdp @ 0xb1ef00] Non-increasing DTS in stream 1: packet 2 with DTS 0, packet 3 with DTS 0
    [vp8 @ 0xb27600] Header size larger than data provided

    ... repeats many times until I kill the socket ...

       Last message repeated 1 times
    [sdp @ 0xb1ef00] Non-increasing DTS in stream 1: packet 273 with DTS 553050, packet 274 with DTS 553050
    [vp8 @ 0xb27600] Header size larger than data provided

    received id=7199daf55e496b370e36cd1d25b1ef5b9dff6858 type=bye
    PeerConnection close. id=7199daf55e496b370e36cd1d25b1ef5b9dff6858
    -- PeerConnection.closed,  err: undefined
    -- peers in the room = 0
    [sdp @ 0xb1ef00] decoding for stream 1 failed
    [sdp @ 0xb1ef00] Could not find codec parameters for stream 1 (Video: vp8, 1 reference frame, yuv420p): unspecified size
    Consider increasing the value for the 'analyzeduration' and 'probesize' options
    [sdp @ 0xb1ef00] After avformat_find_stream_info() pos: 889 bytes read:889 seeks:0 frames:584
    Input #0, sdp, from 'test.sdp':
     Metadata:
       title           : 7199daf55e496b370e36cd1d25b1ef5b9dff6858
     Duration: N/A, start: 0.000000, bitrate: N/A
       Stream #0:0, 309, 1/90000: Audio: opus, 48000 Hz, mono, fltp
       Stream #0:1, 275, 1/90000: Video: vp8, 1 reference frame, yuv420p, 90k tbr, 90k tbn, 90k tbc
    Successfully opened the file.
    Parsing a group of options: output file output.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: output.mp4.
    Matched encoder 'libx264' for codec 'h264'.

    [file @ 0xbc56e0]
    Setting default whitelist 'file,crypto'

    Successfully opened the file.

    detected 1 logical cores

    [graph 0 input from stream 0:1 @ 0xb1eca0]
    Setting 'video_size' to value '0x0'

    [buffer @ 0xbc54e0]
    Unable to parse option value "0x0" as image size

    [graph 0 input from stream 0:1 @ 0xb1eca0]
    Setting 'pix_fmt' to value '0'

    [graph 0 input from stream 0:1 @ 0xb1eca0]
    Setting 'time_base' to value '1/90000'

    [graph 0 input from stream 0:1 @ 0xb1eca0] Setting 'pixel_aspect' to value '0/1'
    [graph 0 input from stream 0:1 @ 0xb1eca0] Setting 'sws_param' to value 'flags=2'
    [graph 0 input from stream 0:1 @ 0xb1eca0] Setting 'frame_rate' to value '90000/1'
    [buffer @ 0xbc54e0] Unable to parse option value "0x0" as image size
    [buffer @ 0xbc54e0] Error setting option video_size to value 0x0.
    [graph 0 input from stream 0:1 @ 0xb1eca0] Error applying options to the filter.
    Error opening filters!
    [AVIOContext @ 0xbc57c0] Statistics: 0 seeks, 0 writeouts

    [AVIOContext @ 0xb1f8c0]
    Statistics: 889 bytes read, 0 seeks

    As you can see, at the beginning of the log the SDP parsed without recognizing the codecs :

    Opening an input file: test.sdp.
    [sdp @ 0xb1ef00] Format sdp probed with size=2048 and score=50
    [sdp @ 0xb1ef00] audio codec set to: (null)
    [sdp @ 0xb1ef00] audio samplerate set to: 44100
    [sdp @ 0xb1ef00] audio channels set to: 1
    [sdp @ 0xb1ef00] video codec set to: (null)

    Then it’s trying to read the packets from the sockets.
    Only when I close the socket, ffmpeg continues to parse the SDP, this time finding the correct codec :

    Opening an input file: test.sdp.
    [sdp @ 0xb1ef00] Format sdp probed with size=2048 and score=50
    [sdp @ 0xb1ef00] audio codec set to: (null)
    [sdp @ 0xb1ef00] audio samplerate set to: 44100
    [sdp @ 0xb1ef00] audio channels set to: 1
    [sdp @ 0xb1ef00] video codec set to: (null)

    I suspect that the "Non-increasing DTS" and "Header size larger than data provided" errors are caused by wrong parsing of the packets due to usage with the wrong codec.

    I checked the SDP order and it seems the same as in other examples I have.

    Can someone suggest an explanation ?

    BTW, audio only works fine, but I guess it’s because of the simplicity of OPUS.

    Thanks.

  • Concatenate two mp4 files using FFmpeg with Android

    4 juillet 2013, par vijay

    I need to merge video files in Android using FFmpeg.I used the code from halfninja and passed the following parameters to run method in Videokit.c.

    ffmpeg -i "concat:input1.mpg|input2.mpg" -c copy output.mpg

    It causes error when these parameters are passed from Android through JNI. Then i replaced -c copy with -vcodec copy -acodec copy.It worked fine.

    Now i tried to concat two .mp4 files / two .3gp files by using the above method and my output format is mp4.The output file is generated but it is empty(0kb).

    When i googled it out, i was asked to convert all mp4 or 3gp files into mpg and then concat it and again convert back to mp4 in the following post :

    Concatenate mp4 files in Android using halfninja ffmpeg (Refer Steven Penny's answer).

    But i have problems(only first input file is converted and the app exits) when converting and storing the intermediate file(i am calling run method thrice).Also this method stores all the input files in the device sdcard and this should not be done.

    -c copy works fine when passing parameters for ffmpeg executable(generated when ndk-build is made) through terminal but it throws an error "unrecognized option c" when called through JNI from android device.Can anyone let me know why this happens ?

    When we look at Steven's answer, we have to call the run method multiple times to covert all the input files and one more time to concat all these.Is it possible to it in a single call ?

    Is it possible to concat video files with different formats without storing the input files in device(mp4+mp4, mp4+3gp,3gp+3gp are my possible combinations of input) ?

    Any help is appreciated.