
Recherche avancée
Médias (1)
-
The Great Big Beautiful Tomorrow
28 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Texte
Autres articles (47)
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...) -
HTML5 audio and video support
13 avril 2011, parMediaSPIP 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 (...)
Sur d’autres sites (8020)
-
Streaming RTP packets using SDP to ffmpeg
4 avril 2017, par Johnathan KanarekI 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=sendrecvCommand :
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 helpedI 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.691Thanks,
Johnathan Kanarek -
FFmpeg rtp streaming opus file problems
22 avril 2017, par Yuriy Aizenbergi have the next situation.
- Have file on remote VPS server.
- I want that this file (opus codec) can be accessible through RTP on my android phone.
-
I tried ffmpeg with next command :
ffmpeg -ar 44800 -i bon_jovi_loverboy.opus -acodec libopus -ac 1 -ab 96k -vn -f rtp rtp://127.0.0.1:5004 -loglevel 56
But got next error :
bon_jovi_loverboy.opus: Invalid data found when processing input
Full log :
root@cs82932 :/home/rstream/rtstream/src# ffmpeg -ar 44800 -i bon_jovi_loverboy.opus -acodec libopus -ac 1 -ab 96k -vn -f rtp rtp ://127.0.0.1:5004 -loglevel 56
ffmpeg version 2.8.11-0ubuntu0.16.04.1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1 16.04.4) 20160609
configuration : —prefix=/usr —extra-version=0ubuntu0.16.04.1 —build-suffix=-ffmpeg —toolchain=hardened —libdir=/usr/lib/x86_64-linux-gnu —incdir=/usr/include/x86_64-linux-gnu —cc=cc —cxx=g++ —enable-gpl —enable-shared —disable-stripping —disable-decoder=libopenjpeg —disable-decoder=libschroedinger —enable-avresample —enable-avisynth —enable-gnutls —enable-ladspa —enable-libass —enable-libbluray —enable-libbs2b —enable-libcaca —enable-libcdio —enable-libflite —enable-libfontconfig —enable-libfreetype —enable-libfribidi —enable-libgme —enable-libgsm —enable-libmodplug —enable-libmp3lame —enable-libopenjpeg —enable-libopus —enable-libpulse —enable-librtmp —enable-libschroedinger —enable-libshine —enable-libsnappy —enable-libsoxr —enable-libspeex —enable-libssh —enable-libtheora —enable-libtwolame —enable-libvorbis —enable-libvpx —enable-libwavpack —enable-libwebp —enable-libx265 —enable-libxvid —enable-libzvbi —enable-openal —enable-opengl —enable-x11grab —enable-libdc1394 —enable-libiec61883 —enable-libzmq —enable-frei0r —enable-libx264 —enable-libopencv
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 40.101 / 5. 40.101
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100
Splitting the commandline.
Reading option ’-ar’ ... matched as option ’ar’ (set audio sampling rate (in Hz)) with argument ’44800’.Reading option ’-i’ ... matched as input url with argument ’bon_jovi_loverboy.opus’.
Reading option ’-acodec’ ... matched as option ’acodec’ (force audio codec (’copy’ to copy stream)) with argument ’libopus’.
Reading option ’-ac’ ... matched as option ’ac’ (set number of audio channels) with argument ’1’.
Reading option ’-ab’ ... matched as option ’ab’ (audio bitrate (please use -b:a)) with argument ’96k’.
Reading option ’-vn’ ... matched as option ’vn’ (disable video) with argument ’1’.
Reading option ’-f’ ... matched as option ’f’ (force format) with argument ’rtp’.
Reading option ’rtp ://127.0.0.1:5004’ ... matched as output url.
Reading option ’-loglevel’ ... matched as option ’loglevel’ (set logging level) with argument ’56’.
Finished splitting the commandline.
Parsing a group of options : global .
Applying option loglevel (set logging level) with argument 56.Successfully parsed a group of options.
Parsing a group of options : input url bon_jovi_loverboy.opus.
Applying option ar (set audio sampling rate (in Hz)) with argument 44800.
Successfully parsed a group of options.
Opening an input file : bon_jovi_loverboy.opus.[AVIOContext @ 0x965e60] Statistics : 36389 bytes read, 0 seeks
bon_jovi_loverboy.opus : Invalid data found when processing inputWhat wrong ? Thanks
UPD
I update ffmpeg and streaming looks successfully.
ffmpeg -stream_loop -1 -i 4a6u7-ptl2w.opus -acodec libopus -ac 1 -ab
96k -vn -f rtp rtp://95.213.195.192:5004/f.opus
ffmpeg version 3.2.4-1~16.04.york1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.1 (Ubuntu 5.4.1-5ubuntu2~16.04.york1) 20170210
configuration: --prefix=/usr --extra-version='1~16.04.york1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil 55. 34.101 / 55. 34.101
libavcodec 57. 64.101 / 57. 64.101
libavformat 57. 56.101 / 57. 56.101
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libavresample 3. 1. 0 / 3. 1. 0
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
Input #0, ogg, from '4a6u7-ptl2w.opus':
Duration: 00:02:34.21, start: 0.000000, bitrate: 69 kb/s
Stream #0:0: Audio: opus, 48000 Hz, stereo, fltp
Metadata:
ENCODER : Lavc57.77.100 libopus
Output #0, rtp, to 'rtp://95.213.195.192:5004/f.opus':
Metadata:
encoder : Lavf57.56.101
Stream #0:0: Audio: opus (libopus), 48000 Hz, mono, flt, 96 kb/s
Metadata:
encoder : Lavc57.64.101 libopus
SDP:
v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 95.213.195.192
t=0 0
a=tool:libavformat 57.56.101
m=audio 5004 RTP/AVP 97
b=AS:96
a=rtpmap:97 opus/48000/2
Stream mapping:
Stream #0:0 -> #0:0 (opus (native) -> opus (libopus))
Press [q] to stop, [?] for help
size= 44893kB time=00:52:18.12 bitrate= 117.2kbits/s speed=56.5xBut when i try to connect by rtp from local PC (VLC Player) i get the exception :
core error: socket bind error: Cannot assign requested address
core error: open of `rtp://95.213.195.192:5004/f.opus' failedWhen i try ffplay on remote pc (same where ffmpeg) :
ffplay rtp://95.213.195.192:5004/f.opus
ffplay version 3.2.4-1~16.04.york1 Copyright (c) 2003-2017 the FFmpeg developers
built with gcc 5.4.1 (Ubuntu 5.4.1-5ubuntu2~16.04.york1) 20170210
configuration: --prefix=/usr --extra-version='1~16.04.york1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil 55. 34.101 / 55. 34.101
libavcodec 57. 64.101 / 57. 64.101
libavformat 57. 56.101 / 57. 56.101
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libavresample 3. 1. 0 / 3. 1. 0
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
Segmentation faultCan you help me ? Thanks
95.213.195.192 - IP of my remote server with file
-
FFMPEG to create an MPEG-DASH stream with VP8
24 avril 2017, par Kenneth WordenI’m trying to use FFMPEG to stream a live video feed from my webcam
/dev/video0
. Following scattered tutorials and scarce documentation (is this a known problem for the encoding community ?) I arrived at the following bash script :#!/bin/bash
ffmpeg \
-y \
-f v4l2 \
-i /dev/video0 \
-s 640x480 \
-input_format mjpeg \
-r 24 \
-map 0:0 \
-pix_fmt yuv420p \
-codec:v libvpx \
-s 640x480 \
-threads 4 \
-b:v 50k \
-tile-columns 4 \
-frame-parallel 1 \
-keyint_min 24 -g 24 \
-f webm_chunk \
-header "stream.hdr" \
-chunk_start_index 1 \
stream_%d.chk &
sleep 2
ffmpeg \
-f webm_dash_manifest -live 1 \
-i stream.hdr \
-c copy \
-map 0 \
-f webm_dash_manifest -live 1 \
-adaptation_sets "id=0,streams=0" \
-chunk_start_index 1 \
-chunk_duration_ms 1000 \
-time_shift_buffer_depth 30000 \
-minimum_update_period 60000 \
stream_manifest.mpdWhen I run this script, my webcam light turns on, the
stream.hdr
andstream_manifest.mpd
files are written, and chunks start to be created (i.e.stream_1.chk
,stream_2.chk
, etc...). However, FFMPEG throws the following error :Could not write header for output file #0 (incorrect codec parameters
?) : Invalid data found when processing inputI will explain what I think I am doing with this script, and hopefully this will expose any errors in my thinking.
First, we invoke FFMPEG to use Video for Linux 2 (v4l2) to read from my webcam (
/dev/video0
) of a resolution 640x480. The input format ismjpeg
with a framerate of 24fps.I then declare that FFMPEG should "map" (copy) the video stream output by v4l2 to a file. I specify the pixel format (YUV420P) and use libvpx (VP8 encoding) to encode the video stream. I set the size to be 640x480, use 4 threads, set the bitrate to be 50kbps, do some magic with tile-columns and frame-parallel options, and set the I-frames to be 24 frames apart.
I then create a
stream.hdr
file. The starting index is 1. This command continues to run infinitely until I kill it, grabbing new video from my webcam and outputting it into chunks.I then sleep for 2 seconds to give the previous command time to generate a header file.
And that’s really it. The next invocation of FFMPEG simply creates the MPEG-DASH manifest file given the header generated in the previous step.
So what’s going on ? Why can I not view the video in a web browser (I’m using Dash.js) ? I serve the manifest, header, and chunks on a Node.js server so that trivial issue is not the problem.
Edit : Here is my full console output.
ffmpeg version 3.0.7-0ubuntu0.16.10.1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 6.2.0 (Ubuntu 6.2.0-5ubuntu12) 20161005
configuration: --prefix=/usr --extra-version=0ubuntu0.16.10.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librubberband --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-chromaprint --enable-libx264
libavutil 55. 17.103 / 55. 17.103
libavcodec 57. 24.102 / 57. 24.102
libavformat 57. 25.100 / 57. 25.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 31.100 / 6. 31.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
[video4linux2,v4l2 @ 0x55847e244ea0] The driver changed the time per frame from 1/24 to 1/30
[mjpeg @ 0x55847e245c00] Changing bps to 8
Input #0, video4linux2,v4l2, from '/dev/video0':
Duration: N/A, start: 64305.102081, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 640x480, -5 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
Codec AVOption frame-parallel (Enable frame parallel decodability features) specified for output file #0 (stream_%d.chk) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
Codec AVOption tile-columns (Number of tile columns to use, log2) specified for output file #0 (stream_%d.chk) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
[swscaler @ 0x55847e24b720] deprecated pixel format used, make sure you did set range correctly
[libvpx @ 0x55847e248a20] v1.5.0
Output #0, webm_chunk, to 'stream_%d.chk':
Metadata:
encoder : Lavf57.25.100
Stream #0:0: Video: vp8 (libvpx), yuv420p, 640x480, q=-1--1, 50 kb/s, 30 fps, 30 tbn, 30 tbc
Metadata:
encoder : Lavc57.24.102 libvpx
Side data:
unknown side data type 10 (24 bytes)
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg (native) -> vp8 (libvpx))
Press [q] to stop, [?] for help
frame= 21 fps=0.0 q=0.0 size=N/A time=00:00:00.70 bitrate=N/A dup=5 drop=frame= 36 fps= 35 q=0.0 size=N/A time=00:00:01.20 bitrate=N/A dup=5 drop=frame= 51 fps= 33 q=0.0 size=N/A time=00:00:01.70 bitrate=N/A dup=5 drop=ffmpeg version 3.0.7-0ubuntu0.16.10.1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 6.2.0 (Ubuntu 6.2.0-5ubuntu12) 20161005
configuration: --prefix=/usr --extra-version=0ubuntu0.16.10.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librubberband --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-chromaprint --enable-libx264
libavutil 55. 17.103 / 55. 17.103
libavcodec 57. 24.102 / 57. 24.102
libavformat 57. 25.100 / 57. 25.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 31.100 / 6. 31.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
Input #0, webm_dash_manifest, from 'stream.hdr':
Metadata:
encoder : Lavf57.25.100
Duration: N/A, bitrate: N/A
Stream #0:0: Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
Metadata:
webm_dash_manifest_file_name: stream.hdr
webm_dash_manifest_track_number: 1
Output #0, webm_dash_manifest, to 'stream_manifest.mpd':
Metadata:
encoder : Lavf57.25.100
Stream #0:0: Video: vp8, yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=2-31, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
Metadata:
webm_dash_manifest_file_name: stream.hdr
webm_dash_manifest_track_number: 1
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Could not write header for output file #0 (incorrect codec parameters ?): Invalid data found when processing input
frame= 67 fps= 33 q=0.0 size
frame= 82 fps= 32 q=0.0 size=N/A time=00:00:02.73 bitrate=N/A dup=5 drop=
frame= 97 fps= 32 q=0.0 size=N/A time=00:00:03.23 bitrate=N/A dup=5 drop=
frame= 112 fps= 32 q=0.0 size=N/A time=00:00:03.73 bitrate=N/A dup=5 ...