moim zdaniem wszytko zależy od wersji i sposobu kompilacji ffmpega - a teraz ciekawostka mi3g
odebranie stremu z kamery wi-fi mjpeg i przekodowanie w locie do h264
root@OpenWrt:~# ffmpeg -f mjpeg -i [url]http://192.168.1.104:81/[/url] -vcodec libx264 -s 240x176 -vf fps=10 -y /mnt/sda1/TEST/test1.mp4
ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7.5.0 (OpenWrt GCC 7.5.0 r10860-a3ffeb413b)
configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share --mandir=/usr/man --disable-static --enable-shared --disable-ffplay --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-postproc --disable-everything --enable-swscale --enable-decoder='aac,aac_fixed,aac_latm,ac3,ac3_fixed' --enable-decoder='adpcm_g722,adpcm_g726,adpcm_g726le' --enable-decoder='alac,als,amrnb,amrwb,ass' --enable-decoder='bitpacked,dca' --enable-decoder='dsd_lsbf,dsd_lsbf_planar,dsd_msbf' --enable-decoder='dsd_msbf_planar,eac3' --enable-decoder='ffv1,flac,flashsv,flashsv2,flv' --enable-decoder='g723_1,g729,gsm,gsm_ms,h263,h263i' --enable-decoder='h263p,h264,hevc,mjpeg,mjpegb' --enable-decoder='mlp,mp1,mp1float,mp2,mp2float,mp3' --enable-decoder='mp3adu,mp3adufloat,mp3float' --enable-decoder='mp3on4,mp3on4float,mpeg1video' --enable-decoder='mpeg2video,mpeg4,mpegvideo' --enable-decoder='msmpeg4v1,msmpeg4v2,msmpeg4v3' --enable-decoder='opus,pcm_alaw,pcm_bluray' --enable-decoder='pcm_dvd,pcm_f16le,pcm_f24le' --enable-decoder='pcm_f32be,pcm_f32le,pcm_f64be' --enable-decoder='pcm_f64le,pcm_mulaw,pcm_s16be' --enable-decoder='pcm_s16be_planar,pcm_s16le' --enable-decoder='pcm_s16le_planar,pcm_s24be' --enable-decoder='pcm_s24daud,pcm_s24le' --enable-decoder='pcm_s24le_planar,pcm_s32be' --enable-decoder='pcm_s32le,pcm_s32le_planar' --enable-decoder='pcm_s64be,pcm_s64le,pcm_s8' --enable-decoder='pcm_s8_planar,pcm_u16be,pcm_u16le' --enable-decoder='pcm_u24be,pcm_u24le,pcm_u32be' --enable-decoder='pcm_u32le,pcm_u8' --enable-decoder='rawvideo,truehd' --enable-decoder='vorbis,vp7,vp8,vp9,webp' --enable-decoder='wrapped_avframe,zlib' --enable-encoder='alac,flac,pcm_alaw' --enable-encoder='h263p,h264,hevc,mjpeg,mjpegb' --enable-encoder='pcm_f32be,pcm_f32le,pcm_f64be' --enable-encoder='pcm_f64le,pcm_mulaw,pcm_s16be' --enable-encoder='pcm_s16be_planar,pcm_s16le' --enable-encoder='pcm_s16le_planar,pcm_s24be' --enable-encoder='pcm_s24daud,pcm_s24le' --enable-encoder='pcm_s24le_planar,pcm_s32be' --enable-encoder='pcm_s32le,pcm_s32le_planar' --enable-encoder='pcm_s64be,pcm_s64le,pcm_s8' --enable-encoder='pcm_s8_planar,pcm_u16be' --enable-encoder='pcm_u16le,pcm_u24be,pcm_u24le' --enable-encoder='pcm_u32be,pcm_u32le,pcm_u8' --enable-encoder='wrapped_avframe,zlib' --enable-demuxer='aac,ac3,ass,avi,concat,data' --enable-demuxer='dts,dtshd,dvbsub,dvbtxt,eac3,ffmetadata,flac' --enable-demuxer='flv,g723_1,g726,g726le,g729,h263,h264,hevc' --enable-demuxer='hls,live_flv,loas,m4v,matroska,mjpeg,mlp,mov' --enable-demuxer='mp3,mpegps,mpegts,mpegtsraw,mpegvideo,mpjpeg' --enable-demuxer='mv,nc,nsv,ogg,pcm_alaw,pcm_f32be,pcm_f32le' --enable-demuxer='pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be' --enable-demuxer='pcm_s16le,pcm_s24be,pcm_s24le,pcm_s32be' --enable-demuxer='pcm_s32le,pcm_s8,pcm_u16be,pcm_u16le' --enable-demuxer='pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le' --enable-demuxer='pcm_u8,rawvideo,rtp,rtsp,s337m,sap,sdp' --enable-demuxer='srt,sup,swf,truehd,vobsub,wav' --enable-demuxer='webm_dash_manifest,webvtt,yuv4mpegpipe' --enable-muxer='ac3,adts,amr' --enable-muxer='ass,avi,bit,dash,data,dts,eac3' --enable-muxer='f4v,ffmetadata,fifo,flac,flv' --enable-muxer='g722,g723_1,g726,g726le,gsm' --enable-muxer='h263,h264,hds,hevc,hls,ipod' --enable-muxer='latm,m4v,matroska,matroska_audio' --enable-muxer='mjpeg,mkvtimestamp_v2,mlp,mov' --enable-muxer='mp2,mp3,mp4,mpeg1system' --enable-muxer='mpeg1vcd,mpeg1video,mpeg2dvd' --enable-muxer='mpeg2svcd,mpeg2video,mpeg2vob' --enable-muxer='mpegts,null,ogg,opus,pcm_alaw' --enable-muxer='pcm_f32be,pcm_f32le,pcm_f64be' --enable-muxer='pcm_f64le,pcm_mulaw,pcm_s16be' --enable-muxer='pcm_s16le,pcm_s24be,pcm_s24le' --enable-muxer='pcm_s32be,pcm_s32le,pcm_s8' --enable-muxer='pcm_u16be,pcm_u16le,pcm_u24be' --enable-muxer='pcm_u24le,pcm_u32be,pcm_u32le' --enable-muxer='pcm_u8,rawvideo,rtp,rtp_mpegts' --enable-muxer='rtsp,sap,segment,srt' --enable-muxer='stream_segment,truehd' --enable-muxer='wav,webm,webm_chunk' --enable-muxer='webm_dash_manifest,webvtt' --enable-muxer=yuv4mpegpipe --enable-parser='aac,aac_latm,ac3,dca' --enable-parser='flac,g729,gsm,h263' --enable-parser='h264,hevc,mjpeg,mpeg4video' --enable-parser='mpegaudio,mpegvideo,opus' --enable-parser='vorbis,vp8,vp9' --enable-protocol='async,cache,concat,data' --enable-protocol='file,hls,http,https,icecast' --enable-protocol='pipe,rtmp,rtmps,srtp,tcp,udp,unix' --enable-bsf='aac_adtstoasc,chomp,dca_core' --enable-bsf='dump_extradata,eac3_core,extract_extradata' --enable-bsf='h264_metadata,h264_mp4toannexb,hevc_mp4toannexb' --enable-bsf='hevc_metadata,hevc_mp4toannexb' --enable-bsf='mjpeg2jpeg,mjpega_dump_header,mlp_parser' --enable-bsf='mp3_header_decompress,mpeg2_metadata' --enable-bsf='mpeg4_unpack_bframes,noise,null' --enable-bsf=remove_extradata --enable-bsf='vp9_raw_reorder,vp9_superframe' --enable-bsf=vp9_superframe_split --enable-filter='acopy,adelay,aformat,ainterleave' --enable-filter='ametadata,apad,aresample' --enable-filter='ashowinfo,astreamselect,atrim' --enable-filter='bwdif,channelmap,copy,crop,format' --enable-filter='fps,framerate' --enable-filter='interleave,join,metadata' --enable-filter='movie,null,nullsink' --enable-filter='nullsrc,pad,qp' --enable-filter='realtime,scale,select' --enable-filter='showinfo,streamselect,trim' --enable-filter='volume,w3fdif,yadif' --disable-bzlib --disable-lzma --enable-cross-compile --disable-debug --cross-prefix=mipsel-openwrt-linux-musl- --arch=mipsel --target-os=linux --ld=mipsel-openwrt-linux-musl-gcc --pkg-config=pkg-config --enable-encoder=mjpeg --enable-encoder=mpeg4 --enable-demuxer=dash --enable-libxml2 --disable-libfdk-aac --enable-encoder=libmp3lame --enable-libmp3lame --enable-mbedtls --enable-version3 --disable-openssl --disable-libopus --disable-libvorbis --enable-encoder=libx264 --enable-encoder=libx264rgb --enable-libx264 --enable-gpl --enable-small --disable-mipsfpu --disable-mipsdsp --disable-mipsdspr2 --disable-fast-unaligned --disable-msa --disable-mmi --disable-asm --cpu=generic
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
Input #0, mjpeg, from '[url]http://192.168.1.104:81/[/url]':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 240x176, 25 tbr, 1200k tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0x774e46c0] using cpu capabilities: none!
[libx264 @ 0x774e46c0] profile High 4:2:2, level 1.1, 4:2:2, 8-bit
[libx264 @ 0x774e46c0] 264 - core 157 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - [url]http://www.videolan.org/x264.html[/url] - 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=5 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=10 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 '/mnt/sda1/TEST/test1.mp4':
Metadata:
encoder : Lavf58.29.100
Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuvj422p(pc), 240x176, q=-1--1, 10 fps, 10240 tbn, 10 tbc
Metadata:
encoder : Lavc58.54.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame= 695 fps=3.9 q=-1.0 Lsize= 1172kB time=00:01:09.20 bitrate= 138.8kbits/s speed=0.391x
video:1163kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.766443%
[libx264 @ 0x774e46c0] frame I:12 Avg QP:16.11 size: 2964
[libx264 @ 0x774e46c0] frame P:182 Avg QP:18.98 size: 2077
[libx264 @ 0x774e46c0] frame B:501 Avg QP:20.15 size: 1551
[libx264 @ 0x774e46c0] consecutive B-frames: 3.2% 1.2% 3.0% 92.7%
[libx264 @ 0x774e46c0] mb I I16..4: 11.4% 87.6% 1.0%
[libx264 @ 0x774e46c0] mb P I16..4: 6.5% 66.6% 0.5% P16..4: 11.5% 8.5% 6.0% 0.0% 0.0% skip: 0.5%
[libx264 @ 0x774e46c0] mb B I16..4: 3.7% 50.8% 0.0% B16..8: 17.2% 10.9% 1.8% direct:10.9% skip: 4.7% L0:51.6% L1:38.6% BI: 9.8%
[libx264 @ 0x774e46c0] 8x8 transform intra:92.1% inter:89.9%
[libx264 @ 0x774e46c0] coded y,uvDC,uvAC intra: 63.8% 97.0% 43.1% inter: 32.8% 85.8% 24.4%
[libx264 @ 0x774e46c0] i16 v,h,dc,p: 38% 33% 26% 3%
[libx264 @ 0x774e46c0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 19% 58% 2% 0% 0% 0% 0% 1%
[libx264 @ 0x774e46c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 28% 30% 17% 4% 4% 4% 4% 5% 4%
[libx264 @ 0x774e46c0] i8c dc,h,v,p: 49% 19% 31% 1%
[libx264 @ 0x774e46c0] Weighted P-Frames: Y:2.2% UV:1.6%
[libx264 @ 0x774e46c0] ref P L0: 43.0% 5.6% 25.9% 25.3% 0.2%
[libx264 @ 0x774e46c0] ref B L0: 61.5% 27.7% 10.8%
[libx264 @ 0x774e46c0] ref B L1: 81.7% 18.3%
[libx264 @ 0x774e46c0] kb/s:137.06
--------------------------------------------------------------------------
root@OpenWrt:~# ls /mnt/sda1/TEST
test1.mp4
oczywiscie procek idzie ma maxa oraz parametry z kamery minimalne ale można 