Recherche avancée

Médias (91)

Autres articles (98)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Configuration spécifique pour PHP5

    4 février 2011, par

    PHP5 est obligatoire, vous pouvez l’installer en suivant ce tutoriel spécifique.
    Il est recommandé dans un premier temps de désactiver le safe_mode, cependant, s’il est correctement configuré et que les binaires nécessaires sont accessibles, MediaSPIP devrait fonctionner correctement avec le safe_mode activé.
    Modules spécifiques
    Il est nécessaire d’installer certains modules PHP spécifiques, via le gestionnaire de paquet de votre distribution ou manuellement : php5-mysql pour la connectivité avec la (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

Sur d’autres sites (8580)

  • 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

  • How to Save and Display a Video Simultaneously using C# Aforge.NET framework ?

    8 avril 2014, par Akshay

    I am able to display the video from my webcam or any other integrated device into a picturebox . Also i am able to Save the video into an avi file using FFMPEG DLL files.
    I want to do both things simultaneously ie Save the video in the avi file as well as at the same time display the live feed too.
    This is for a surveillance project where i want to monitor the live feed and save those too.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    using AForge.Video;
    using AForge.Video.DirectShow;
    using AForge.Video.FFMPEG;
    using AForge.Video.VFW;
    using System.Drawing.Imaging;
    using System.IO;

    namespace cam_aforge1
    {
    public partial class Form1 : Form
    {
       private bool DeviceExist = false;
       private FilterInfoCollection videoDevices;
       private VideoCaptureDevice videoSource = null;

       public Form1()
       {
           InitializeComponent();
       }

       private void getCamList()
       {
           try
           {
               videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
               comboBox1.Items.Clear();
               if (videoDevices.Count == 0)
                   throw new ApplicationException();

               DeviceExist = true;
               foreach (FilterInfo device in videoDevices)
               {
                   comboBox1.Items.Add(device.Name);
               }
               comboBox1.SelectedIndex = 0; //make dafault to first cam
           }
           catch (ApplicationException)
           {
               DeviceExist = false;
               comboBox1.Items.Add("No capture device on your system");
           }
       }

       private void rfsh_Click(object sender, EventArgs e)
       {
           getCamList();
       }

       private void start_Click(object sender, EventArgs e)
       {
           if (start.Text == "&Start")
           {
               if (DeviceExist)
               {
                   videoSource = new VideoCaptureDevice(videoDevices[comboBox1.SelectedIndex].MonikerString);
                   videoSource.NewFrame += new NewFrameEventHandler(video_NewFrame);
                   videoSource.NewFrame += new NewFrameEventHandler(video_NewFrameSave);
                   CloseVideoSource();
                   videoSource.DesiredFrameSize = new Size(160, 120);
                   //videoSource.DesiredFrameRate = 10;
                   videoSource.Start();
                   label2.Text = "Device running...";
                   start.Text = "&Stop";
                   timer1.Enabled = true;
               }
               else
               {
                   label2.Text = "Error: No Device selected.";
               }
           }
           else
           {
               if (videoSource.IsRunning)
               {
                   timer1.Enabled = false;
                   CloseVideoSource();
                   label2.Text = "Device stopped.";
                   start.Text = "&Start";                    
               }
           }
       }
       private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
       {
           Bitmap img = (Bitmap)eventArgs.Frame.Clone();
           pictureBox1.Image = img;
       }

       Bitmap imgsave;
       private void video_NewFrameSave(object sender, NewFrameEventArgs eventArgs)
       {
           imgsave = (Bitmap)eventArgs.Frame.Clone();
       }

       private void CloseVideoSource()
       {
           if (!(videoSource == null))
               if (videoSource.IsRunning)
               {
                   videoSource.SignalToStop();
                   videoSource = null;
               }
       }

       private void timer1_Tick(object sender, EventArgs e)
       {
           label2.Text = "Device running... " + videoSource.FramesReceived.ToString() + " FPS";
       }

       private void Form1_FormClosed(object sender, FormClosedEventArgs e)
       {
           CloseVideoSource();
       }

       private void Form1_Load(object sender, EventArgs e)
       {

       }

       VideoFileWriter writer;

       private void button1_Click(object sender, EventArgs e)
       {
           int width = 640;
           int height = 480;
           writer = new VideoFileWriter();
           writer.Open("test.avi", width, height, 75, VideoCodec.MPEG4);
           for (int i = 0; i < 5000; i++)
           {
               writer.WriteVideoFrame(imgsave);
           }

       }

       private void button2_Click(object sender, EventArgs e)
       {
           writer.Close();
       }

    }
    }

    Thanks in advance.

  • avformat_open_input causes exception on RTP stream open

    3 avril 2014, par user3283475

    I'm trying to program a video player of the RTP stream. I'm using visual studio 2010. When avformat_open_input command is executed an exception is generated (ntdll.dll !774b70f4()). It works fine with normal file from disk(test.avi).

    #include "stdafx.h"
    #include

    //zeranoe headers and libraries(DLLs also from zeranoe)
    extern "C"
    {
    #include <libavcodec></libavcodec>avcodec.h>
    #include <libavformat></libavformat>avformat.h>
    }

    #pragma comment(lib, "avcodec.lib")
    #pragma comment(lib, "avformat.lib")

    int _tmain(int argc, _TCHAR* argv[])
    {
       AVFormatContext *pFormatCtx=NULL;
       //char* Filename="c:\\test.avi"; //if I use this there is no crash
       char* Filename="rtp://239.255.42.42:5004";//if I use rtp I receive exception
       int videoStream,i;
       AVCodec         *pCodec=NULL;
       AVCodecContext  *pCodecCtx=NULL;

       avcodec_register_all();
       av_register_all();
       avformat_network_init();

       unsigned int _expTime = 5000;
       static const AVIOInterruptCB int_cb = {interrupt_cb, &amp;_expTime};


       // Open video file
       if(avformat_open_input(&amp;pFormatCtx, Filename , NULL,NULL)!=0)//ntdll.dll exception when I try to open rtp stream
       return -1; // Couldn&#39;t open file

    Can someone help me please ?