FFmpeg to RTMP streaming issue
I'm trying to stream to online service via FFmpeg. All my test commands works fine with restream.io preview and with local rtmp server viewer. My OBS setup works fine too (same resolution, server and key). Only when I'm about to start ffmpeg stream from my command line it stucks after few seconds. My test command: ffmpeg -stream_loop -1 \ -i noise.mov \ -c:v libx264 c:a aac \ -f flv 'rtmps://live-upload******' With -debug pict after some progress with input files and rtmp handshaking I can see this: Clipping frame in rate conversion by 0.000008 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10 times [h264 @ 0x7ff12001da00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7ff12001e000] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10 times [h264 @ 0x7ff12001e600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7ff12001ec00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 8 times [h264 @ 0x7ff12001ac00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7ff12001da00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7ff12001e000] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 [libx264 @ 0x7ff120802400] frame= 0 QP=20.00 NAL=3 Slice:I Poc:0 I:3600 P:0 SKIP:0 size=216266 bytes [h264 @ 0x7ff12001e600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 [libx264 @ 0x7ff120802400] frame= 1 QP=31.00 NAL=2 Slice:P Poc:2 I:287 P:3267 SKIP:46 size=48597 bytes [h264 @ 0x7ff12001ec00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 [libx264 @ 0x7ff120802400] frame= 2 QP=30.00 NAL=2 Slice:P Poc:4 I:710 P:2888 SKIP:2 size=79226 bytes ..and that's it. The same command works fine with any other online service except this one. What I can do to debug it? Works fine with OBS, but won't with ffmpeg command. noise.mov — 720×1280px mov file. Full log: iMac:Desktop 350d$ ffmpeg -stream_loop -1 -re -i noise.mov -c:v libx264 -preset ultrafast -c:a aac -f flv -debug pict 'rtmps://live-upload.*******' ffmpeg version N-96521-g5e62100152-tessus https://evermeet.cx/ffmpeg/ Copyright (c) 2000-2020 the FFmpeg developers built with Apple clang version 11.0.0 (clang-1100.0.33.17) configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay libavutil 56. 38.100 / 56. 38.100 libavcodec 58. 67.100 / 58. 67.100 libavformat 58. 36.100 / 58. 36.100 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 71.100 / 7. 71.100 libswscale 5. 6.100 / 5. 6.100 libswresample 3. 6.100 / 3. 6.100 libpostproc 55. 6.100 / 55. 6.100 matched as AVOption 'debug' with argument 'pict'. Reading option 'rtmps://live-upload.************' ... matched as output url. Finished splitting the commandline. Parsing a group of options: global . Successfully parsed a group of options. Parsing a group of options: input url /Users/350d/Desktop/noise.mov. Applying option stream_loop (set number of times input stream shall be looped) with argument -1. Applying option re (read input at native frame rate) with argument 1. Successfully parsed a group of options. Opening an input file: /Users/350d/Desktop/noise.mov. [NULL @ 0x7fb1e5000000] Opening '/Users/350d/Desktop/noise.mov' for reading [file @ 0x7fb1e4c01700] Setting default whitelist 'file,crypto,data' [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] ISO: File Type Major Brand: qt [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Unknown dref type 0x73696c61 size 12 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Processing st: 0, edit list 0 - media time: 2112, duration: 160230 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] drop a frame at curr_cts: 0 @ 0 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] drop a frame at curr_cts: 1024 @ 1 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] skip 64 audio samples from curr_cts: 2048 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Unknown dref type 0x73696c61 size 12 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Shifting DTS by 100 because of negative CTTS. [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Processing st: 1, edit list 0 - media time: 0, duration: 10900 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] stts: 0 ctts: 0, ctts_index: 0, ctts_count: 109 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] stts: 100 ctts: 100, ctts_index: 1, ctts_count: 109 .... .... .... [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] stts: 10800 ctts: 0, ctts_index: 108, ctts_count: 109 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Setting codecpar->delay to 1 for stream st: 1 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Unknown dref type 0x73696c61 size 12 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Processing st: 2, edit list 0 - media time: 0, duration: 10900 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Before avformat_find_stream_info() pos: 3397542 bytes read:70076 seeks:3 nb_streams:3 [h264 @ 0x7fb1e5806a00] nal_unit_type: 7(SPS), nal_ref_idc: 1 [h264 @ 0x7fb1e5806a00] nal_unit_type: 8(PPS), nal_ref_idc: 1 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] demuxer injecting skip 2112 / discard 0 [aac @ 0x7fb1e5010c00] skip 2112 / discard 0 samples due to side data [h264 @ 0x7fb1e5806a00] nal_unit_type: 6(SEI), nal_ref_idc: 0 [h264 @ 0x7fb1e5806a00] nal_unit_type: 5(IDR), nal_ref_idc: 1 [h264 @ 0x7fb1e5806a00] Format yuv420p chosen by get_format(). [h264 @ 0x7fb1e5806a00] Reinit context to 720x1280, pix_fmt: yuv420p [h264 @ 0x7fb1e5806a00] no picture [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] All info found [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] After avformat_find_stream_info() pos: 200654 bytes read:270218 seeks:4 frames:45 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/350d/Desktop/noise.mov': Metadata: major_brand : qt minor_version : 0 compatible_brands: qt creation_time : 2020-01-27T09:49:16.000000Z com.apple.quicktime.displayname: STREAM com.apple.quicktime.title: STREAM Duration: 00:00:03.63, start: 0.000000, bitrate: 7480 kb/s Stream #0:0(und), 44, 1/44100: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 101 kb/s (default) Metadata: creation_time : 2020-01-27T09:49:16.000000Z handler_name : Core Media Audio Stream #0:1(und), 1, 1/3000: Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, bt709, progressive, left), 720x1280 [SAR 1:1 DAR 9:16], 0/1, 7328 kb/s, 30 fps, 30 tbr, 3k tbn, 6k tbc (default) Metadata: creation_time : 2020-01-27T09:49:16.000000Z handler_name : Core Media Video encoder : H.264 timecode : 00:00:00:00 Stream #0:2(und), 0, 1/3000: Data: none (tmcd / 0x64636D74), 0/1, 0 kb/s (default) Metadata: creation_time : 2020-01-27T09:49:16.000000Z handler_name : Core Media Time Code timecode : 00:00:00:00 Successfully opened the file. Parsing a group of options: output url rtmps://live-upload.*************. Applying option c:v (codec name) with argument libx264. Applying option c:a (codec name) with argument aac. Applying option f (force format) with argument flv. Successfully parsed a group of options. Opening an output file: rtmps://live-upload.********************. [rtmps @ 0x7fb1e4c04a00] No default whitelist set [tls @ 0x7fb1e4c04880] No default whitelist set [tcp @ 0x7fb1e4c04940] No default whitelist set [tcp @ 0x7fb1e4c04940] Original list of addresses: [tcp @ 0x7fb1e4c04940] Address ***** port 443 [tcp @ 0x7fb1e4c04940] Interleaved list of addresses: [tcp @ 0x7fb1e4c04940] Address ***** port 443 [tcp @ 0x7fb1e4c04940] Starting connection attempt to ***** port 443 [tcp @ 0x7fb1e4c04940] Successfully connected to ***** port 443 [rtmps @ 0x7fb1e4c04a00] Handshaking... [rtmps @ 0x7fb1e4c04a00] Type answer 3 [rtmps @ 0x7fb1e4c04a00] Server version 1.0.5.4 [rtmps @ 0x7fb1e4c04a00] Proto = rtmps, path = /rtmp/**************, app = rtmp, fname = ***************** [rtmps @ 0x7fb1e4c04a00] Window acknowledgement size = 5000000 [rtmps @ 0x7fb1e4c04a00] Max sent, unacked = 5000000 [rtmps @ 0x7fb1e4c04a00] New incoming chunk size = 4096 [rtmps @ 0x7fb1e4c04a00] Releasing stream... [rtmps @ 0x7fb1e4c04a00] FCPublish stream... [rtmps @ 0x7fb1e4c04a00] Creating stream... [rtmps @ 0x7fb1e4c04a00] Sending publish command for '********************' Successfully opened the file. detected 4 logical cores [h264 @ 0x7fb1e5035400] nal_unit_type: 7(SPS), nal_ref_idc: 1 [h264 @ 0x7fb1e5035400] nal_unit_type: 8(PPS), nal_ref_idc: 1 Stream mapping: Stream #0:1 -> #0:0 (h264 (native) -> h264 (libx264)) Stream #0:0 -> #0:1 (aac (native) -> aac (native)) Press [q] to stop, [?] for help cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) [aac @ 0x7fb1e5011800] skip 2112 / discard 0 samples due to side data cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 1 times [aac @ 0x7fb1e5011800] skip 64/1024 samples [graph_1_in_0_0 @ 0x7fb1e4e05540] Setting 'time_base' to value '1/44100' [graph_1_in_0_0 @ 0x7fb1e4e05540] Setting 'sample_rate' to value '44100' [graph_1_in_0_0 @ 0x7fb1e4e05540] Setting 'sample_fmt' to value 'fltp' [graph_1_in_0_0 @ 0x7fb1e4e05540] Setting 'channel_layout' to value '0x3' [graph_1_in_0_0 @ 0x7fb1e4e05540] tb:1/44100 samplefmt:fltp samplerate:44100 chlayout:0x3 [format_out_0_1 @ 0x7fb1e4e03f00] Setting 'sample_fmts' to value 'fltp' [format_out_0_1 @ 0x7fb1e4e03f00] Setting 'sample_rates' to value '96000|88200|64000|48000|44100|32000|24000|22050|16000|12000|11025|8000|7350' [AVFilterGraph @ 0x7fb1e4d10940] query_formats: 4 queried, 9 merged, 0 already done, 0 delayed cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 197507 times cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 190577 times [h264 @ 0x7fb1e5035400] nal_unit_type: 6(SEI), nal_ref_idc: 0 [h264 @ 0x7fb1e5035400] nal_unit_type: 5(IDR), nal_ref_idc: 1 [h264 @ 0x7fb1e5035400] Format yuv420p chosen by get_format(). [h264 @ 0x7fb1e5035400] Reinit context to 720x1280, pix_fmt: yuv420p cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 436 times [h264 @ 0x7fb1e5035400] no picture cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 9068 times cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 8658 times [h264 @ 0x7fb1e580ae00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 8151 times [h264 @ 0x7fb1e5807600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 18758 times [h264 @ 0x7fb1e5807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 8906 times [h264 @ 0x7fb1e5821c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10004 times [h264 @ 0x7fb1e5035400] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'video_size' to value '720x1280' [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'pix_fmt' to value '0' [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'time_base' to value '1/3000' [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'pixel_aspect' to value '1/1' [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'frame_rate' to value '30/1' [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] w:720 h:1280 pixfmt:yuv420p tb:1/3000 fr:30/1 sar:1/1 [format @ 0x7fb1e4d12f00] Setting 'pix_fmts' to value 'yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16|nv21|yuv420p10le|yuv422p10le|yuv444p10le|nv20le|gray|gray10le' [AVFilterGraph @ 0x7fb1e4f0a5c0] query_formats: 4 queried, 3 merged, 0 already done, 0 delayed [libx264 @ 0x7fb1e5015600] using mv_range_thread = 104 [libx264 @ 0x7fb1e5015600] using SAR=1/1 [libx264 @ 0x7fb1e5015600] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264 @ 0x7fb1e5015600] profile Constrained Baseline, level 3.1, 4:2:0, 8-bit [libx264 @ 0x7fb1e5015600] 264 - core 159 r2991 1771b55 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0 [flv @ 0x7fb1e5014400] Ignoring metadata for framerate [flv @ 0x7fb1e5014400] Ignoring metadata for width [flv @ 0x7fb1e5014400] Ignoring metadata for height Output #0, flv, to 'rtmps://live-upload.***********************************': Metadata: major_brand : qt minor_version : 0 compatible_brands: qt encoder : Lavf58.36.100 com.apple.quicktime.displayname: IG STREAM com.apple.quicktime.title: IG STREAM framerate : 30 width : 720 height : 1280 title : USERNAME creation_time : 2020-01-27T09:49:16.000000Z Stream #0:0(und), 0, 1/1000: Video: h264 (libx264), 1 reference frame ([7][0][0][0] / 0x0007), yuv420p(left), 720x1280 [SAR 1:1 DAR 9:16], 0/1, q=-1--1, 30 fps, 1k tbn, 30 tbc (default) Metadata: creation_time : 2020-01-27T09:49:16.000000Z handler_name : Core Media Video timecode : 00:00:00:00 encoder : Lavc58.67.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A Stream #0:1(und), 0, 1/1000: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, delay 1024, 128 kb/s (default) Metadata: creation_time : 2020-01-27T09:49:16.000000Z handler_name : Core Media Audio encoder : Lavc58.67.100 aac Clipping frame in rate conversion by 0.000008 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10 times [h264 @ 0x7fb1e580ae00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7fb1e5807600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10 times [h264 @ 0x7fb1e5807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 3 times [h264 @ 0x7fb1e5821c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10 times [h264 @ 0x7fb1e5035400] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7fb1e580ae00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7fb1e5807600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 [libx264 @ 0x7fb1e5015600] frame= 0 QP=20.00 NAL=3 Slice:I Poc:0 I:3600 P:0 SKIP:0 size=216266 bytes [h264 @ 0x7fb1e5807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 [libx264 @ 0x7fb1e5015600] frame= 1 QP=31.00 NAL=2 Slice:P Poc:2 I:287 P:3267 SKIP:46 size=48597 bytes [h264 @ 0x7fb1e5821c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 [libx264 @ 0x7fb1e5015600] frame= 2 QP=30.00 NAL=2 Slice:P Poc:4 I:710 P:2888 SKIP:2 size=79226 bytes ^C[tls @ 0x7fb1e4c04880] IO Error: -9806 av_interleaved_write_frame(): Input/output error [libx264 @ 0x7fb1e5015600] frame= 3 QP=30.00 NAL=2 Slice:P Poc:6 I:355 P:3245 SKIP:0 size=82386 bytes
On Jan 31, 2020, at 10:18 01AM, Vladimir Sobolev <v.sobolev@gmail.com> wrote:
I'm trying to stream to online service via FFmpeg. All my test commands works fine with restream.io preview and with local rtmp server viewer. My OBS setup works fine too (same resolution, server and key). Only when I'm about to start ffmpeg stream from my command line it stucks after few seconds.
My test command:
ffmpeg -stream_loop -1 \ -i noise.mov \ -c:v libx264 c:a aac \ -f flv 'rtmps://live-upload******'
may i ask what behavior you are expecting when using -stream_loop -1?
With -debug pict after some progress with input files and rtmp handshaking I can see this:
Clipping frame in rate conversion by 0.000008 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10 times [h264 @ 0x7ff12001da00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7ff12001e000] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10 times [h264 @ 0x7ff12001e600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7ff12001ec00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 8 times [h264 @ 0x7ff12001ac00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7ff12001da00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7ff12001e000] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 [libx264 @ 0x7ff120802400] frame= 0 QP=20.00 NAL=3 Slice:I Poc:0 I:3600 P:0 SKIP:0 size=216266 bytes [h264 @ 0x7ff12001e600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 [libx264 @ 0x7ff120802400] frame= 1 QP=31.00 NAL=2 Slice:P Poc:2 I:287 P:3267 SKIP:46 size=48597 bytes [h264 @ 0x7ff12001ec00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 [libx264 @ 0x7ff120802400] frame= 2 QP=30.00 NAL=2 Slice:P Poc:4 I:710 P:2888 SKIP:2 size=79226 bytes
..and that's it.
The same command works fine with any other online service except this one. What I can do to debug it? Works fine with OBS, but won't with ffmpeg command. noise.mov — 720×1280px mov file.
Full log:
iMac:Desktop 350d$ ffmpeg -stream_loop -1 -re -i noise.mov -c:v libx264 -preset ultrafast -c:a aac -f flv -debug pict 'rtmps://live-upload.*******' ffmpeg version N-96521-g5e62100152-tessus https://evermeet.cx/ffmpeg/ Copyright (c) 2000-2020 the FFmpeg developers built with Apple clang version 11.0.0 (clang-1100.0.33.17) configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay libavutil 56. 38.100 / 56. 38.100 libavcodec 58. 67.100 / 58. 67.100 libavformat 58. 36.100 / 58. 36.100 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 71.100 / 7. 71.100 libswscale 5. 6.100 / 5. 6.100 libswresample 3. 6.100 / 3. 6.100 libpostproc 55. 6.100 / 55. 6.100 matched as AVOption 'debug' with argument 'pict'. Reading option 'rtmps://live-upload.************' ... matched as output url. Finished splitting the commandline. Parsing a group of options: global . Successfully parsed a group of options. Parsing a group of options: input url /Users/350d/Desktop/noise.mov. Applying option stream_loop (set number of times input stream shall be looped) with argument -1. Applying option re (read input at native frame rate) with argument 1. Successfully parsed a group of options. Opening an input file: /Users/350d/Desktop/noise.mov. [NULL @ 0x7fb1e5000000] Opening '/Users/350d/Desktop/noise.mov' for reading [file @ 0x7fb1e4c01700] Setting default whitelist 'file,crypto,data' [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] ISO: File Type Major Brand: qt [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Unknown dref type 0x73696c61 size 12 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Processing st: 0, edit list 0 - media time: 2112, duration: 160230 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] drop a frame at curr_cts: 0 @ 0 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] drop a frame at curr_cts: 1024 @ 1 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] skip 64 audio samples from curr_cts: 2048 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Unknown dref type 0x73696c61 size 12 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Shifting DTS by 100 because of negative CTTS. [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Processing st: 1, edit list 0 - media time: 0, duration: 10900 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] stts: 0 ctts: 0, ctts_index: 0, ctts_count: 109 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] stts: 100 ctts: 100, ctts_index: 1, ctts_count: 109 .... .... .... [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] stts: 10800 ctts: 0, ctts_index: 108, ctts_count: 109 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Setting codecpar->delay to 1 for stream st: 1 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Unknown dref type 0x73696c61 size 12 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Processing st: 2, edit list 0 - media time: 0, duration: 10900 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Before avformat_find_stream_info() pos: 3397542 bytes read:70076 seeks:3 nb_streams:3 [h264 @ 0x7fb1e5806a00] nal_unit_type: 7(SPS), nal_ref_idc: 1 [h264 @ 0x7fb1e5806a00] nal_unit_type: 8(PPS), nal_ref_idc: 1 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] demuxer injecting skip 2112 / discard 0 [aac @ 0x7fb1e5010c00] skip 2112 / discard 0 samples due to side data [h264 @ 0x7fb1e5806a00] nal_unit_type: 6(SEI), nal_ref_idc: 0 [h264 @ 0x7fb1e5806a00] nal_unit_type: 5(IDR), nal_ref_idc: 1 [h264 @ 0x7fb1e5806a00] Format yuv420p chosen by get_format(). [h264 @ 0x7fb1e5806a00] Reinit context to 720x1280, pix_fmt: yuv420p [h264 @ 0x7fb1e5806a00] no picture [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] All info found [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] After avformat_find_stream_info() pos: 200654 bytes read:270218 seeks:4 frames:45 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/350d/Desktop/noise.mov': Metadata: major_brand : qt minor_version : 0 compatible_brands: qt creation_time : 2020-01-27T09:49:16.000000Z com.apple.quicktime.displayname: STREAM com.apple.quicktime.title: STREAM Duration: 00:00:03.63, start: 0.000000, bitrate: 7480 kb/s
you mentioned it gets stuck after a few seconds.... the duration of the input file is 'only a few seconds'
Stream #0:0(und), 44, 1/44100: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 101 kb/s (default) Metadata: creation_time : 2020-01-27T09:49:16.000000Z handler_name : Core Media Audio Stream #0:1(und), 1, 1/3000: Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, bt709, progressive, left), 720x1280 [SAR 1:1 DAR 9:16], 0/1, 7328 kb/s, 30 fps, 30 tbr, 3k tbn, 6k tbc (default) Metadata: creation_time : 2020-01-27T09:49:16.000000Z handler_name : Core Media Video encoder : H.264 timecode : 00:00:00:00 Stream #0:2(und), 0, 1/3000: Data: none (tmcd / 0x64636D74), 0/1, 0 kb/s (default) Metadata: creation_time : 2020-01-27T09:49:16.000000Z handler_name : Core Media Time Code timecode : 00:00:00:00 Successfully opened the file. Parsing a group of options: output url rtmps://live-upload.*************. Applying option c:v (codec name) with argument libx264. Applying option c:a (codec name) with argument aac. Applying option f (force format) with argument flv. Successfully parsed a group of options. Opening an output file: rtmps://live-upload.********************. [rtmps @ 0x7fb1e4c04a00] No default whitelist set [tls @ 0x7fb1e4c04880] No default whitelist set [tcp @ 0x7fb1e4c04940] No default whitelist set [tcp @ 0x7fb1e4c04940] Original list of addresses: [tcp @ 0x7fb1e4c04940] Address ***** port 443 [tcp @ 0x7fb1e4c04940] Interleaved list of addresses: [tcp @ 0x7fb1e4c04940] Address ***** port 443 [tcp @ 0x7fb1e4c04940] Starting connection attempt to ***** port 443 [tcp @ 0x7fb1e4c04940] Successfully connected to ***** port 443 [rtmps @ 0x7fb1e4c04a00] Handshaking... [rtmps @ 0x7fb1e4c04a00] Type answer 3 [rtmps @ 0x7fb1e4c04a00] Server version 1.0.5.4 [rtmps @ 0x7fb1e4c04a00] Proto = rtmps, path = /rtmp/**************, app = rtmp, fname = ***************** [rtmps @ 0x7fb1e4c04a00] Window acknowledgement size = 5000000 [rtmps @ 0x7fb1e4c04a00] Max sent, unacked = 5000000 [rtmps @ 0x7fb1e4c04a00] New incoming chunk size = 4096 [rtmps @ 0x7fb1e4c04a00] Releasing stream... [rtmps @ 0x7fb1e4c04a00] FCPublish stream... [rtmps @ 0x7fb1e4c04a00] Creating stream... [rtmps @ 0x7fb1e4c04a00] Sending publish command for '********************' Successfully opened the file. detected 4 logical cores [h264 @ 0x7fb1e5035400] nal_unit_type: 7(SPS), nal_ref_idc: 1 [h264 @ 0x7fb1e5035400] nal_unit_type: 8(PPS), nal_ref_idc: 1 Stream mapping: Stream #0:1 -> #0:0 (h264 (native) -> h264 (libx264)) Stream #0:0 -> #0:1 (aac (native) -> aac (native)) Press [q] to stop, [?] for help cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) [aac @ 0x7fb1e5011800] skip 2112 / discard 0 samples due to side data cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 1 times [aac @ 0x7fb1e5011800] skip 64/1024 samples [graph_1_in_0_0 @ 0x7fb1e4e05540] Setting 'time_base' to value '1/44100' [graph_1_in_0_0 @ 0x7fb1e4e05540] Setting 'sample_rate' to value '44100' [graph_1_in_0_0 @ 0x7fb1e4e05540] Setting 'sample_fmt' to value 'fltp' [graph_1_in_0_0 @ 0x7fb1e4e05540] Setting 'channel_layout' to value '0x3' [graph_1_in_0_0 @ 0x7fb1e4e05540] tb:1/44100 samplefmt:fltp samplerate:44100 chlayout:0x3 [format_out_0_1 @ 0x7fb1e4e03f00] Setting 'sample_fmts' to value 'fltp' [format_out_0_1 @ 0x7fb1e4e03f00] Setting 'sample_rates' to value '96000|88200|64000|48000|44100|32000|24000|22050|16000|12000|11025|8000|7350' [AVFilterGraph @ 0x7fb1e4d10940] query_formats: 4 queried, 9 merged, 0 already done, 0 delayed cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 197507 times cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 190577 times [h264 @ 0x7fb1e5035400] nal_unit_type: 6(SEI), nal_ref_idc: 0 [h264 @ 0x7fb1e5035400] nal_unit_type: 5(IDR), nal_ref_idc: 1 [h264 @ 0x7fb1e5035400] Format yuv420p chosen by get_format(). [h264 @ 0x7fb1e5035400] Reinit context to 720x1280, pix_fmt: yuv420p cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 436 times [h264 @ 0x7fb1e5035400] no picture cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 9068 times cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 8658 times [h264 @ 0x7fb1e580ae00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 8151 times [h264 @ 0x7fb1e5807600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 18758 times [h264 @ 0x7fb1e5807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 8906 times [h264 @ 0x7fb1e5821c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10004 times [h264 @ 0x7fb1e5035400] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'video_size' to value '720x1280' [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'pix_fmt' to value '0' [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'time_base' to value '1/3000' [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'pixel_aspect' to value '1/1' [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'frame_rate' to value '30/1' [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] w:720 h:1280 pixfmt:yuv420p tb:1/3000 fr:30/1 sar:1/1 [format @ 0x7fb1e4d12f00] Setting 'pix_fmts' to value 'yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16|nv21|yuv420p10le|yuv422p10le|yuv444p10le|nv20le|gray|gray10le' [AVFilterGraph @ 0x7fb1e4f0a5c0] query_formats: 4 queried, 3 merged, 0 already done, 0 delayed [libx264 @ 0x7fb1e5015600] using mv_range_thread = 104 [libx264 @ 0x7fb1e5015600] using SAR=1/1 [libx264 @ 0x7fb1e5015600] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264 @ 0x7fb1e5015600] profile Constrained Baseline, level 3.1, 4:2:0, 8-bit [libx264 @ 0x7fb1e5015600] 264 - core 159 r2991 1771b55 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0 [flv @ 0x7fb1e5014400] Ignoring metadata for framerate [flv @ 0x7fb1e5014400] Ignoring metadata for width [flv @ 0x7fb1e5014400] Ignoring metadata for height Output #0, flv, to 'rtmps://live-upload.***********************************': Metadata: major_brand : qt minor_version : 0 compatible_brands: qt encoder : Lavf58.36.100 com.apple.quicktime.displayname: IG STREAM com.apple.quicktime.title: IG STREAM framerate : 30 width : 720 height : 1280 title : USERNAME creation_time : 2020-01-27T09:49:16.000000Z Stream #0:0(und), 0, 1/1000: Video: h264 (libx264), 1 reference frame ([7][0][0][0] / 0x0007), yuv420p(left), 720x1280 [SAR 1:1 DAR 9:16], 0/1, q=-1--1, 30 fps, 1k tbn, 30 tbc (default) Metadata: creation_time : 2020-01-27T09:49:16.000000Z handler_name : Core Media Video timecode : 00:00:00:00 encoder : Lavc58.67.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A Stream #0:1(und), 0, 1/1000: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, delay 1024, 128 kb/s (default) Metadata: creation_time : 2020-01-27T09:49:16.000000Z handler_name : Core Media Audio encoder : Lavc58.67.100 aac Clipping frame in rate conversion by 0.000008 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10 times [h264 @ 0x7fb1e580ae00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7fb1e5807600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10 times [h264 @ 0x7fb1e5807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 3 times [h264 @ 0x7fb1e5821c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10 times [h264 @ 0x7fb1e5035400] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7fb1e580ae00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7fb1e5807600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 [libx264 @ 0x7fb1e5015600] frame= 0 QP=20.00 NAL=3 Slice:I Poc:0 I:3600 P:0 SKIP:0 size=216266 bytes [h264 @ 0x7fb1e5807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 [libx264 @ 0x7fb1e5015600] frame= 1 QP=31.00 NAL=2 Slice:P Poc:2 I:287 P:3267 SKIP:46 size=48597 bytes [h264 @ 0x7fb1e5821c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 [libx264 @ 0x7fb1e5015600] frame= 2 QP=30.00 NAL=2 Slice:P Poc:4 I:710 P:2888 SKIP:2 size=79226 bytes ^C[tls @ 0x7fb1e4c04880] IO Error: -9806 av_interleaved_write_frame(): Input/output error [libx264 @ 0x7fb1e5015600] frame= 3 QP=30.00 NAL=2 Slice:P Poc:6 I:355 P:3245 SKIP:0 size=82386 bytes
_______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email ffmpeg-user-request@ffmpeg.org with subject "unsubscribe".
Im expecting to loop my short video and make infinite stream and it works fine on local rtmp server Sent from my iPhone
On 8. Feb 2020, at 16:05, DopeLabs <dopelabs@dubstep.fm> wrote:
On Jan 31, 2020, at 10:18 01AM, Vladimir Sobolev <v.sobolev@gmail.com> wrote:
I'm trying to stream to online service via FFmpeg. All my test commands works fine with restream.io preview and with local rtmp server viewer. My OBS setup works fine too (same resolution, server and key). Only when I'm about to start ffmpeg stream from my command line it stucks after few seconds.
My test command:
ffmpeg -stream_loop -1 \ -i noise.mov \ -c:v libx264 c:a aac \ -f flv 'rtmps://live-upload******'
may i ask what behavior you are expecting when using -stream_loop -1?
With -debug pict after some progress with input files and rtmp handshaking I can see this:
Clipping frame in rate conversion by 0.000008 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10 times [h264 @ 0x7ff12001da00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7ff12001e000] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10 times [h264 @ 0x7ff12001e600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7ff12001ec00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 8 times [h264 @ 0x7ff12001ac00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7ff12001da00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7ff12001e000] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 [libx264 @ 0x7ff120802400] frame= 0 QP=20.00 NAL=3 Slice:I Poc:0 I:3600 P:0 SKIP:0 size=216266 bytes [h264 @ 0x7ff12001e600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 [libx264 @ 0x7ff120802400] frame= 1 QP=31.00 NAL=2 Slice:P Poc:2 I:287 P:3267 SKIP:46 size=48597 bytes [h264 @ 0x7ff12001ec00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 [libx264 @ 0x7ff120802400] frame= 2 QP=30.00 NAL=2 Slice:P Poc:4 I:710 P:2888 SKIP:2 size=79226 bytes
..and that's it.
The same command works fine with any other online service except this one. What I can do to debug it? Works fine with OBS, but won't with ffmpeg command. noise.mov — 720×1280px mov file.
Full log:
iMac:Desktop 350d$ ffmpeg -stream_loop -1 -re -i noise.mov -c:v libx264 -preset ultrafast -c:a aac -f flv -debug pict 'rtmps://live-upload.*******' ffmpeg version N-96521-g5e62100152-tessus https://evermeet.cx/ffmpeg/ Copyright (c) 2000-2020 the FFmpeg developers built with Apple clang version 11.0.0 (clang-1100.0.33.17) configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay libavutil 56. 38.100 / 56. 38.100 libavcodec 58. 67.100 / 58. 67.100 libavformat 58. 36.100 / 58. 36.100 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 71.100 / 7. 71.100 libswscale 5. 6.100 / 5. 6.100 libswresample 3. 6.100 / 3. 6.100 libpostproc 55. 6.100 / 55. 6.100 matched as AVOption 'debug' with argument 'pict'. Reading option 'rtmps://live-upload.************' ... matched as output url. Finished splitting the commandline. Parsing a group of options: global . Successfully parsed a group of options. Parsing a group of options: input url /Users/350d/Desktop/noise.mov. Applying option stream_loop (set number of times input stream shall be looped) with argument -1. Applying option re (read input at native frame rate) with argument 1. Successfully parsed a group of options. Opening an input file: /Users/350d/Desktop/noise.mov. [NULL @ 0x7fb1e5000000] Opening '/Users/350d/Desktop/noise.mov' for reading [file @ 0x7fb1e4c01700] Setting default whitelist 'file,crypto,data' [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] ISO: File Type Major Brand: qt [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Unknown dref type 0x73696c61 size 12 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Processing st: 0, edit list 0 - media time: 2112, duration: 160230 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] drop a frame at curr_cts: 0 @ 0 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] drop a frame at curr_cts: 1024 @ 1 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] skip 64 audio samples from curr_cts: 2048 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Unknown dref type 0x73696c61 size 12 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Shifting DTS by 100 because of negative CTTS. [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Processing st: 1, edit list 0 - media time: 0, duration: 10900 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] stts: 0 ctts: 0, ctts_index: 0, ctts_count: 109 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] stts: 100 ctts: 100, ctts_index: 1, ctts_count: 109 .... .... .... [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] stts: 10800 ctts: 0, ctts_index: 108, ctts_count: 109 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Setting codecpar->delay to 1 for stream st: 1 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Unknown dref type 0x73696c61 size 12 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Processing st: 2, edit list 0 - media time: 0, duration: 10900 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] Before avformat_find_stream_info() pos: 3397542 bytes read:70076 seeks:3 nb_streams:3 [h264 @ 0x7fb1e5806a00] nal_unit_type: 7(SPS), nal_ref_idc: 1 [h264 @ 0x7fb1e5806a00] nal_unit_type: 8(PPS), nal_ref_idc: 1 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] demuxer injecting skip 2112 / discard 0 [aac @ 0x7fb1e5010c00] skip 2112 / discard 0 samples due to side data [h264 @ 0x7fb1e5806a00] nal_unit_type: 6(SEI), nal_ref_idc: 0 [h264 @ 0x7fb1e5806a00] nal_unit_type: 5(IDR), nal_ref_idc: 1 [h264 @ 0x7fb1e5806a00] Format yuv420p chosen by get_format(). [h264 @ 0x7fb1e5806a00] Reinit context to 720x1280, pix_fmt: yuv420p [h264 @ 0x7fb1e5806a00] no picture [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] All info found [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb1e5000000] After avformat_find_stream_info() pos: 200654 bytes read:270218 seeks:4 frames:45 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/350d/Desktop/noise.mov': Metadata: major_brand : qt minor_version : 0 compatible_brands: qt creation_time : 2020-01-27T09:49:16.000000Z com.apple.quicktime.displayname: STREAM com.apple.quicktime.title: STREAM Duration: 00:00:03.63, start: 0.000000, bitrate: 7480 kb/s
you mentioned it gets stuck after a few seconds.... the duration of the input file is 'only a few seconds'
Stream #0:0(und), 44, 1/44100: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 101 kb/s (default) Metadata: creation_time : 2020-01-27T09:49:16.000000Z handler_name : Core Media Audio Stream #0:1(und), 1, 1/3000: Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, bt709, progressive, left), 720x1280 [SAR 1:1 DAR 9:16], 0/1, 7328 kb/s, 30 fps, 30 tbr, 3k tbn, 6k tbc (default) Metadata: creation_time : 2020-01-27T09:49:16.000000Z handler_name : Core Media Video encoder : H.264 timecode : 00:00:00:00 Stream #0:2(und), 0, 1/3000: Data: none (tmcd / 0x64636D74), 0/1, 0 kb/s (default) Metadata: creation_time : 2020-01-27T09:49:16.000000Z handler_name : Core Media Time Code timecode : 00:00:00:00 Successfully opened the file. Parsing a group of options: output url rtmps://live-upload.*************. Applying option c:v (codec name) with argument libx264. Applying option c:a (codec name) with argument aac. Applying option f (force format) with argument flv. Successfully parsed a group of options. Opening an output file: rtmps://live-upload.********************. [rtmps @ 0x7fb1e4c04a00] No default whitelist set [tls @ 0x7fb1e4c04880] No default whitelist set [tcp @ 0x7fb1e4c04940] No default whitelist set [tcp @ 0x7fb1e4c04940] Original list of addresses: [tcp @ 0x7fb1e4c04940] Address ***** port 443 [tcp @ 0x7fb1e4c04940] Interleaved list of addresses: [tcp @ 0x7fb1e4c04940] Address ***** port 443 [tcp @ 0x7fb1e4c04940] Starting connection attempt to ***** port 443 [tcp @ 0x7fb1e4c04940] Successfully connected to ***** port 443 [rtmps @ 0x7fb1e4c04a00] Handshaking... [rtmps @ 0x7fb1e4c04a00] Type answer 3 [rtmps @ 0x7fb1e4c04a00] Server version 1.0.5.4 [rtmps @ 0x7fb1e4c04a00] Proto = rtmps, path = /rtmp/**************, app = rtmp, fname = ***************** [rtmps @ 0x7fb1e4c04a00] Window acknowledgement size = 5000000 [rtmps @ 0x7fb1e4c04a00] Max sent, unacked = 5000000 [rtmps @ 0x7fb1e4c04a00] New incoming chunk size = 4096 [rtmps @ 0x7fb1e4c04a00] Releasing stream... [rtmps @ 0x7fb1e4c04a00] FCPublish stream... [rtmps @ 0x7fb1e4c04a00] Creating stream... [rtmps @ 0x7fb1e4c04a00] Sending publish command for '********************' Successfully opened the file. detected 4 logical cores [h264 @ 0x7fb1e5035400] nal_unit_type: 7(SPS), nal_ref_idc: 1 [h264 @ 0x7fb1e5035400] nal_unit_type: 8(PPS), nal_ref_idc: 1 Stream mapping: Stream #0:1 -> #0:0 (h264 (native) -> h264 (libx264)) Stream #0:0 -> #0:1 (aac (native) -> aac (native)) Press [q] to stop, [?] for help cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) [aac @ 0x7fb1e5011800] skip 2112 / discard 0 samples due to side data cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 1 times [aac @ 0x7fb1e5011800] skip 64/1024 samples [graph_1_in_0_0 @ 0x7fb1e4e05540] Setting 'time_base' to value '1/44100' [graph_1_in_0_0 @ 0x7fb1e4e05540] Setting 'sample_rate' to value '44100' [graph_1_in_0_0 @ 0x7fb1e4e05540] Setting 'sample_fmt' to value 'fltp' [graph_1_in_0_0 @ 0x7fb1e4e05540] Setting 'channel_layout' to value '0x3' [graph_1_in_0_0 @ 0x7fb1e4e05540] tb:1/44100 samplefmt:fltp samplerate:44100 chlayout:0x3 [format_out_0_1 @ 0x7fb1e4e03f00] Setting 'sample_fmts' to value 'fltp' [format_out_0_1 @ 0x7fb1e4e03f00] Setting 'sample_rates' to value '96000|88200|64000|48000|44100|32000|24000|22050|16000|12000|11025|8000|7350' [AVFilterGraph @ 0x7fb1e4d10940] query_formats: 4 queried, 9 merged, 0 already done, 0 delayed cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 197507 times cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 190577 times [h264 @ 0x7fb1e5035400] nal_unit_type: 6(SEI), nal_ref_idc: 0 [h264 @ 0x7fb1e5035400] nal_unit_type: 5(IDR), nal_ref_idc: 1 [h264 @ 0x7fb1e5035400] Format yuv420p chosen by get_format(). [h264 @ 0x7fb1e5035400] Reinit context to 720x1280, pix_fmt: yuv420p cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 436 times [h264 @ 0x7fb1e5035400] no picture cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 9068 times cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 8658 times [h264 @ 0x7fb1e580ae00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 8151 times [h264 @ 0x7fb1e5807600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 18758 times [h264 @ 0x7fb1e5807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 8906 times [h264 @ 0x7fb1e5821c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10004 times [h264 @ 0x7fb1e5035400] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'video_size' to value '720x1280' [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'pix_fmt' to value '0' [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'time_base' to value '1/3000' [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'pixel_aspect' to value '1/1' [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] Setting 'frame_rate' to value '30/1' [graph 0 input from stream 0:1 @ 0x7fb1e4d13080] w:720 h:1280 pixfmt:yuv420p tb:1/3000 fr:30/1 sar:1/1 [format @ 0x7fb1e4d12f00] Setting 'pix_fmts' to value 'yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16|nv21|yuv420p10le|yuv422p10le|yuv444p10le|nv20le|gray|gray10le' [AVFilterGraph @ 0x7fb1e4f0a5c0] query_formats: 4 queried, 3 merged, 0 already done, 0 delayed [libx264 @ 0x7fb1e5015600] using mv_range_thread = 104 [libx264 @ 0x7fb1e5015600] using SAR=1/1 [libx264 @ 0x7fb1e5015600] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264 @ 0x7fb1e5015600] profile Constrained Baseline, level 3.1, 4:2:0, 8-bit [libx264 @ 0x7fb1e5015600] 264 - core 159 r2991 1771b55 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0 [flv @ 0x7fb1e5014400] Ignoring metadata for framerate [flv @ 0x7fb1e5014400] Ignoring metadata for width [flv @ 0x7fb1e5014400] Ignoring metadata for height Output #0, flv, to 'rtmps://live-upload.***********************************': Metadata: major_brand : qt minor_version : 0 compatible_brands: qt encoder : Lavf58.36.100 com.apple.quicktime.displayname: IG STREAM com.apple.quicktime.title: IG STREAM framerate : 30 width : 720 height : 1280 title : USERNAME creation_time : 2020-01-27T09:49:16.000000Z Stream #0:0(und), 0, 1/1000: Video: h264 (libx264), 1 reference frame ([7][0][0][0] / 0x0007), yuv420p(left), 720x1280 [SAR 1:1 DAR 9:16], 0/1, q=-1--1, 30 fps, 1k tbn, 30 tbc (default) Metadata: creation_time : 2020-01-27T09:49:16.000000Z handler_name : Core Media Video timecode : 00:00:00:00 encoder : Lavc58.67.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A Stream #0:1(und), 0, 1/1000: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, delay 1024, 128 kb/s (default) Metadata: creation_time : 2020-01-27T09:49:16.000000Z handler_name : Core Media Audio encoder : Lavc58.67.100 aac Clipping frame in rate conversion by 0.000008 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10 times [h264 @ 0x7fb1e580ae00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7fb1e5807600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10 times [h264 @ 0x7fb1e5807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 3 times [h264 @ 0x7fb1e5821c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 10 times [h264 @ 0x7fb1e5035400] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7fb1e580ae00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) Last message repeated 5 times [h264 @ 0x7fb1e5807600] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 [libx264 @ 0x7fb1e5015600] frame= 0 QP=20.00 NAL=3 Slice:I Poc:0 I:3600 P:0 SKIP:0 size=216266 bytes [h264 @ 0x7fb1e5807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1 [libx264 @ 0x7fb1e5015600] frame= 1 QP=31.00 NAL=2 Slice:P Poc:2 I:287 P:3267 SKIP:46 size=48597 bytes [h264 @ 0x7fb1e5821c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0 [libx264 @ 0x7fb1e5015600] frame= 2 QP=30.00 NAL=2 Slice:P Poc:4 I:710 P:2888 SKIP:2 size=79226 bytes ^C[tls @ 0x7fb1e4c04880] IO Error: -9806 av_interleaved_write_frame(): Input/output error [libx264 @ 0x7fb1e5015600] frame= 3 QP=30.00 NAL=2 Slice:P Poc:6 I:355 P:3245 SKIP:0 size=82386 bytes
_______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email ffmpeg-user-request@ffmpeg.org with subject "unsubscribe".
_______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email ffmpeg-user-request@ffmpeg.org with subject "unsubscribe".
participants (2)
-
DopeLabs -
Vladimir Sobolev