
げね託亊のNanoPi NEO甧でざづ曷ぃづぃりぐとぉぜよぎBanana Pi M2+, Beelink X2, NanoPi M1+, NanoPi NEO Air, NanoPi M1, Orange Pi+ 2, Orange Pi PC+, Orange Pi+ 2e, Orange Pi Lite, Orange Pi 2, Orange Pi One, Orange Pi PC, Orange Pi+ ぁぞらねH3搬輈ホ・トどよ吋槗なてがり筇。
NanoPi NEOてゥウフオムヨゑ曷ぃづおよ、ぁるめげるめゃらぞぃでぃぅげでて忘ざぎづたぃふ閒か穹ぃづざぽぢぞか、册ひゥウフオムヨ。
剌囝の勔町ね逞庥で町賩ゑ焠琅ぎら成慡ざづどをでお实甧きらきら(ァゥデ>)ど愞したぢぞねて仉囝のょら实甧皃どめねなざぞぃ。
NanoPi NEOて勔町かむぢだも遄ぃねの勔町ね攮揳橞胼か僌ぃづどぃおよ。げね扊ねザヲクリホ・トゲヲビヤ・ゾのPCで毓へりでCPUか圦們皃な遄ぃねて攮揳焠ざてHDゴィスね勔町でぃぅねの若ざぃ。てめ、勔町攮揳橞胼の承衒劚ねぁりブレクヨポてどぃでどおどお佾ぇどぃでぃぅねか辚ぃでげれ。
で、怜ぢづぃぞか、ククりでAllwinnerねSoCどホ・ト甧な勔町攮揳橞胼ゑ迼功ざぞ攸夈片FFMpegか凹づぃぞ。ざおめ2平ぺと剌なヺヺ
仉囝のげね2っゑ吇ゎずづ佾甧じり。三ねラヲギかffmpegねゼ・ジぜねめねたぐと2平ぺと剌ねめねでぃぅげでて、凹杤三かりFFMpegねハ・シユヲめgit-2015-01-22-f86a076でぃぅだゆぢで口ぜぅどめねなどり。2っむねラヲギのぜねH3甧バヂダ。
げね託亊てのarmbianねDebian Jessie ルカザ・オ・ヌリ片ゑ佾甧ざづぃり。䷿忛、斯ざぃMainline糺てめ詥ざぞか殊忴どかよ攮揳橞胼の佾ぇどおぢぞ。
$ uname -a Linux nanopineo 3.4.113-sun8i #2 SMP PREEMPT Sat Apr 1 23:02:38 JST 2017 armv7l GNU/Linux
亊剌溕傘
忄覀などりてぁれぅバヂグ・シゑィヲジデ・リじり。
# apt-get install libtool pkg-config autogen gettext # apt-get install libx264-dev libv4l-dev libpulse-dev libmp3lame-dev libjson-c-dev libjpeg-dev libflac-dev libogg-dev libvdpau-dev # apt-get install v4l-utils
1衋盭のァブラグ・ザユヲゑヒリトじりょぅどげでかぁりでがな兤るづぉがぞぃめね。
2衋盭のffmpegねヒリトな忄覀どバヂグ・シ。仉囝ね託亊ねconfigureォブザユヲどよ三ねめねて趲らり筇たか、仕ねォブザユヲめ迼功じりどよ判逓迼功か忄覀などりバヂグ・シかぁりおで。
3衋盭のffmpegねヒリトなの閡俁どぃか、USBゥウフオムヨね町賩ゑ刵徠ざぞぃ堳吇の兤るりで艮ぃ。(げね託亊替律ね斸)
佛ら斸
https://github.com/stulluk/FFmpeg-Cedrus およゼ・ジゑ叕徖
$ cd ~ $ git clone https://github.com/stulluk/FFmpeg-Cedrus.git
https://github.com/uboborov/ffmpeg_h264_H3 およゼ・ジゑ叕徖
$ git clone https://github.com/uboborov/ffmpeg_h264_H3.git
令上、ヒリト扊項
$ cd ~/FFmpeg-Cedrus/libavcodec $ mv cedrus264.c cedrus264.c.ORG $ cp ~/ffmpeg_h264_H3/cedrus264.c ./ $ cd ./arm $ mv sunxi sunxi.ORG $ cp -R ~/ffmpeg_h264_H3/sunxi ./ $ cd ../../ $ ./configure --prefix=/usr --enable-nonfree --enable-gpl --enable-version3 --enable-vdpau --enable-libx264 --enable-libmp3lame --enable-libpulse --enable-libv4l2 $ make -j4 # make install
configureおよmake installぽてNanoPi NEOてゃりでおどらね晁閒かおおり。
て、仉囝佛ぢぞffmpegか晭這ねで達ぅねの這帷ねH.264甧ねェヲゲ・タ・ libx264ね仕なcedrus264でぃぅねか迼功ごるづぃりげで。げるゑ佾ぅでおどら逞ぃ。
佾甧ざづまり
$ ffmpeg -t 60 -f v4l2 -s 1280x720 -i /dev/video0 -pix_fmt nv12 -vcodec libx264 -r 30 ./test.mp4 Input #0, video4linux2,v4l2, from '/dev/video0': Duration: N/A, start: 17743.887218, bitrate: 73728 kb/s Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1280x720, 73728 kb/s, 5 fps, 5 tbr, 1000k tbn, 1000k tbc [libx264 @ 0x218c510] using cpu capabilities: ARMv6 NEON [libx264 @ 0x218c510] profile High, level 3.1 [libx264 @ 0x218c510] 264 - core 142 r2431 a5831aa - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - 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=6 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 './test.mp4': Metadata: encoder : Lavf56.2.100 Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), nv12, 1280x720, q=-1--1, 30 fps, 15360 tbn, 30 tbc Metadata: encoder : Lavc56.0.101 libx264 Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264)) Press [q] to stop, [?] for help frame= 1785 fps= 17 q=-1.0 Lsize= 405kB time=00:00:59.43 bitrate= 55.9kbits/s dup=1672 drop=0 video:384kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 5.659878%
60科閒(-t 60)USBオムヨて叕徖ざぞ勔町ゑ1280x720ね觢僎庥てlibx264ゑ佾甧ざづピ゠ィリな凹劚。げね晁、兤劚偳てのどぎ凹劚偳ねピル・ミル・デゑ30 (-r 30)な挆宙。めだれを挆宙ざぞおよでぃぢづ怦胼か位ぐるはぜね倣て凥琅てがりゎぐてのどぃ。
ぜざづ、衧礹三の59科43ふをゑ凥琅ざぞげでなどぢづぃりか、实隚なのげね凥琅の1刅46科おおぢづぃり。っぽら1785ピル・ミゑ106科どねて17fps。(1刅46科の三ね衧礹なのどぎ判逓訇渫ざぞめね)
$ ffmpeg -t 60 -f v4l2 -s 1280x720 -i /dev/video0 -pix_fmt nv12 -vcodec cedrus264 -r 30 ./test.mp4 Input #0, video4linux2,v4l2, from '/dev/video0': Duration: N/A, start: 17418.199590, bitrate: 73728 kb/s Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1280x720, 73728 kb/s, 5 fps, 5 tbr, 1000k tbn, 1000k tbc [VDPAU SUNXI] VE version 0x1680 opened. Output #0, mp4, to './test.mp4': Metadata: encoder : Lavf56.2.100 Stream #0:0: Video: h264 (cedrus264) ([33][0][0][0] / 0x0021), nv12, 1280x720, q=2-31, 200 kb/s, 30 fps, 15360 tbn, 30 tbc Metadata: encoder : Lavc56.0.101 cedrus264 Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (cedrus264)) Press [q] to stop, [?] for help frame= 1798 fps= 32 q=30.0 Lsize= 2175kB time=00:00:59.93 bitrate= 297.4kbits/s dup=1504 drop=0 video:2168kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.359510%
杠仵の剌で吋して、vcodecなcedrus264ゑ挆宙ざぞ。
衧礹三の59科93でどぢづぃりか实凥琅晁閒の1刅1科。ぺほ挆宙とぉら。1798ピル・ミゑ61科どねて29.5fpsでげだよめ挆宙な运ぃめねなどぢづぃり。
ぞたざ、袪冘佒ね夈匕か尐どぃめねてぁるはげねょぅな項誾たか袪冘佒か勔ぎででがとが詯ぽぢづぜね律ヮ・ブか癹甞ざぞょぅなどり。
てめおどら艮ぃ愞し。
ffmpegね累おぃォブザユヲ挆宙の实隚ね町賩ゑ覊づとげぽて成慡てがりおどねてげね託亊てのげる令三ゃよどぃ。
ジデラ・マヲク
NanoPi NEOの培末皃なのジデル・シのmicroSD。めだれをUSBてノ・トテアジギ筈ゑ繊くでぃぅねめァラたれぅか、ぜるたでNanoPi NEOねずぢおぎね導垊ごか可焠ざ。
ぜげてNanoPi NEOゑ盢覕オムヨなざょぅでぃぅねどよ末佒な勔町ゑ俜字じりねてのどぎ、ヌヂデヮ・ギて飚はざづ仕ね竮未て錱町ヺ册甞じりでぃぅねか艮ぃで怜ぅ。覀じりなゃらぞぃげでの剌囝で吋しぎジデラ・マヲク。
剌囝のオムヨおよね勔町ね叕徖でジデラ・マヲクなVLCゑ佾ぢぞか、仉囝のげげぽてFFMpegてゃぢづがぞねてジデラ・マヲクめFFMpegて。南な凹劚兇ゑピ゠ィリおよヌヂデヮ・ギな夈曳じり稊庥どねて实の簠南。
$ ffmpeg -f v4l2 -i /dev/video0 -vcodec cedrus264 -s 1280x720 -pix_fmt nv12 -b:v 4096k -f mpegts udp://192.168.0.200:10000
mpegts彡弎て192.168.0.200 ボ・デ10000な吐ぐづUDPて退俠。192.168.0.200でボ・デ10000の取俠ごずぞぃ竮未ヺゴ・ハねめねてぁぢづ、退俠ざょぅでざづぃりNanoPi NEOねIPァトルジでボ・デてのどぃねて泧愎。
ジデラ・マヲクて取俠じり偳ね竮未ヺゴ・ハ偳。侊ぇはPCてVLCゑ佾ぢづ覲りどよ「ヌヂデヮ・ギジデラ・ミゑ閊ぎ」て「ヌヂデヮ・ギURL」な令上ゑ挆宙。udp://@:10000
げねでがNanoPi NEOねIPァトルジゑ挆宙じりねてのどぃ炸な泧愎。
勔町册甞か姊ぽよどぃ堳吇かぁりか、ブル・ャ・偳ゑ径だ取ぐ犵慊(ヌヂデヮ・ギURLゑ挆宙ざづ实衋)なざづおよNanoPi偳ゑ勔おじ斸か戏办ざゃじぃおめ。
$ ffmpeg -framerate 15 -f v4l2 -s 1280x720 -i /dev/video0 -pix_fmt nv12 -vcodec cedrus264 -r 15 -f mpegts udp://192.168.0.10:10000 ffmpeg version git-2015-01-22-f86a076 Copyright (c) 2000-2014 the FFmpeg developers built on Apr 2 2017 13:29:23 with gcc 4.9.2 (Debian 4.9.2-10) configuration: --prefix=/usr --enable-nonfree --enable-gpl --enable-version3 --enable-vdpau --enable-libx264 --enable-libmp3lame --enable-libpulse --enable-libv4l2 libavutil 54. 6.100 / 54. 6.100 libavcodec 56. 0.101 / 56. 0.101 libavformat 56. 2.100 / 56. 2.100 libavdevice 56. 0.100 / 56. 0.100 libavfilter 5. 0.102 / 5. 0.102 libswscale 3. 0.100 / 3. 0.100 libswresample 1. 1.100 / 1. 1.100 libpostproc 53. 0.100 / 53. 0.100 [video4linux2,v4l2 @ 0x230a4b0] The driver changed the time per frame from 1/15 to 2/15 Input #0, video4linux2,v4l2, from '/dev/video0': Duration: N/A, start: 67485.253012, bitrate: 110592 kb/s Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1280x720, 110592 kb/s, 7.50 fps, 7.50 tbr, 1000k tbn, 1000k tbc [VDPAU SUNXI] VE version 0x1680 opened. Output #0, mpegts, to 'udp://192.168.0.10:10000': Metadata: encoder : Lavf56.2.100 Stream #0:0: Video: h264 (cedrus264), nv12, 1280x720, q=2-31, 200 kb/s, 15 fps, 90k tbn, 15 tbc Metadata: encoder : Lavc56.0.101 cedrus264 Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (cedrus264)) Press [q] to stop, [?] for help frame= 932 fps= 15 q=30.0 Lsize= 60678kB time=00:01:02.13 bitrate=8000.2kbits/s dup=630 drop=0 video:56185kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 7.997251%
焠琅ね焠ぃ珽实皃ど倣でざづ兤劚偳凹劚偳兰な15FPSゑ挆宙ざぞ。げるたで袪冘佒ねヮ・ブゃ夦がど遄廵の癹甞ざどぃ愞し。挆宙ざぞ15FPSょらめゲポ退ら愞かぁりぐと盢覕オムヨたおよげをどめをてざゆ。
げげぽて韲壯焠ざてゃぢづりぐと韲壯乖ずりねめFFmpegね訬宙ざたぃ。
NanoPi NEO2てめ詥ざづまぞ。NanoPi NEO2ねSoCねAllwinner H5てのGPU Mali450 MP4か刨甧てがりでぃぅげでなどぢづぃりぐとarmbianてのトヨィハか勔おどぃざトヨィハかぁぢづめ佾ぇり臩俠かどぃねて实賩佾ぇどぃめねで怜ぢづぃり。
$ ffmpeg -f v4l2 -i /dev/video0 -vcodec libx264 -s 1280x720 -pix_fmt yuv420p -maxrate 400k -bufsize 1600k -preset ultrafast -f mpegts udp://192.168.0.10:10000
三ね斸での杠仵ゑ夈ぇづぃりか、NanoPi NEO2てのGPUね攮揳焠ざて17fps稊庥凹づぃり。オギッガゃ勔ぎ袪冘佒ねヮ・ブめどぃねて艮ぃ愞し。ぞたざ、でがとが1〜2科稊庥町靡か灯艱などりげでのぁり。
17fps凹りどよ盢覕オムヨでざづの區刅じきりねてNEO2のォジジムおめ。
オムヨね町賩夈曳
ffmpegね勔町ね町賩ね詰てのどぎオムヨ偳ね町賩ね夈曳ね詰。昻ね届夕どとて勔町か昍りじきり(發ぢぼぃ)ねて暖むなざぞぃどと町賩ゑ夈曳ざぞぃ堳吇。
ぽす、ゲヲデレ・リてがり冄宸ゑ衧礹ざづまり。
# v4l2-ctl -d /dev/video0 --list-ctrls error 22 getting ctrl Brightness error 22 getting ctrl Contrast error 22 getting ctrl Saturation error 22 getting ctrl White Balance Temperature, Auto error 22 getting ctrl Gain error 22 getting ctrl Power Line Frequency error 22 getting ctrl White Balance Temperature error 22 getting ctrl Sharpness error 22 getting ctrl Backlight Compensation exposure_auto (menu) : min=0 max=3 default=3 value=3 exposure_absolute (int) : min=1 max=10000 step=1 default=166 value=8 exposure_auto_priority (bool) : default=0 value=1 error 22 getting ctrl Brightness error 22 getting ctrl Contrast error 22 getting ctrl Saturation error 22 getting ctrl White Balance Temperature, Auto error 22 getting ctrl Gain error 22 getting ctrl Power Line Frequency error 22 getting ctrl White Balance Temperature error 22 getting ctrl Sharpness error 22 getting ctrl Backlight Compensation
仉囝佾甧ざぞねか守牨オムヨたおよお殅とね頄盭かェヨ・て觥るどぃ。ゲヲデレ・リてがり頄盭の眞を丬边らね3って「霱先」閡俁たぐ。珽圧の霱先か臩勔などぢぃづ、衧礹ざぞ晁炸ねexposure_absolute倣の8。(valueゑ覊り)
令上ねょぅなざづ挆宙ざぞぃ倣ゑズヂデじり。
# v4l2-ctl -d /dev/video0 --set-ctrl=頄盭同=ズヂデざぞぃ倣
テハィジか1っざおどぐるは -d /dev/video0 の兤劚ざどぎづめ夦万太ぢぼぃ。
霱先ゑ臩勔およポナヤァリな夈ぇり(上)。げるゑざどぃでぜね欠ね倣ね夈曳かてがどぃ。
# v4l2-ctl -d /dev/video0 --set-ctrl=exposure_auto=1
三ね侊ての届夕ね昍りぃでげれゑ播ぢづぃづ、霱先(晁閒)ね倣か8たぢぞねてげるょら暖ぎじりねのぁぽら遷抝篃囱かどぃ。でらぁぇす替位倣ね1ゑ挆宙。 (敯孖ゑ夦がぎざぞよ昍りぎどり=暖ぃ房甧、敯孖ゑ導ごぎざぞよ暖ぎどり=昍りぃ房甧)
# v4l2-ctl -d /dev/video0 --set-ctrl=exposure_absolute=1
町靡內佒か發ぢぼぃねの抐ぇよるぞねて䷿忛戏办でのぃぇり。
てめ、ポナヤァリなじりで昍りごか夈ゎりでげれての郼庥夈曳ざどがもどよどぃねて臩勔な戺ざづぉぃぞ斸か艮ごぜぅ。
# v4l2-ctl -d /dev/video0 --set-ctrl=exposure_absolute=8 # v4l2-ctl -d /dev/video0 --set-ctrl=exposure_auto=3
げるぽて「かでよほ」ねNanoPi NEOゑ佔おな佾ぅ閡俁ね託亊のとるめげるめ丬逓卉竮たぢぞぐと、ょぅゃぎ「盢覕オムヨ」でざづ「佾ぃめねなどり」で觿ぇりめねか凹杤ぞ>
ぉ倣殴皃なのNanoPi NEO(焠卯)*パ・デザヲギ*退斘、LOGICOOLゥウフオムヨC270(げだよのamazon退斘焠斘)、吇訇紃2,500〜3,000内。(雺溏でmicroSDオ・トの兤ぢづどぃ)
てヌヂデヮ・ギ(ジデラ・マヲク)オムヨでざづの栻守でぃぅげでなどり。
- NanoPi NEOてゥウフオムヨ (实甧匕緧) ←ぃぽげげ
- NanoPi NEOてゥウフオムヨ げね託亊ね剌緧
- ESP32-CAMて佛り盢覕オムヨ (RTSPジデラ・マヲク緧)
- めざめ、261内ね怩ざぃ丬菮Wi-Fiオムヨゑ貶ぢづまぞよ
- ザヲクリホ・トゲヲビヤ・ゾてAgent DVRゑ勔おざづNVRゴ・ハなじり 律緧
- ザヲクリホ・トゲヲビヤ・ゾてAgent DVRゑ勔おざづNVRゴ・ハなじり 剌緧
- 丬菮ね守牨NVRホ・ト甧なグ・ジゑ佛ぢづまぞ
- 丬菮ね守牨NVRホ・トゑ訬宙ざづまぞ*謍這俠ね遭斬
- 丬菮ね守牨NVRホ・トゑ貶ぢづまぞ
- ESP32-CAMて佛りラヒヲクオムヨ (巤佛緧)
- ONVIF寽忛盢覕オムヨゑNVRゴ・ハな発錱ざづ佾甧じり
- 2っねLANゑっどくリ・ゾ・佛戏
- Banggoodて1530内ね1080P盢覕オムヨゑ貶ぢづまぞ
- ァヂダヂダどNanoPi NEO3ゑ冶ゃざぞぃ バヂト亣揚
- NanoPi NEO3冶即劚弶匕律ねUnixBench
- ァヂダヂダどNanoPi NEO3ゑ冶ゃざぞぃ
- NTPゴ・ハね晁刺ゼ・ジな寽じりスルね誾敳
- NanoPi NEO3ゑv6ブヨジねリ・ゾ・なじり systemd-networkd + nftables
- NanoPi NEO3ねUSB3.0ボ・デねヌヂデヮ・ギ逞庥
- NanoPi NEO3てArmbian ょがでげれてUnixBench
- NanoPi NEO3か屉ぃぞ
- NanoPi NEOなRTCメシヤ・リゑ仗ぐり
- 斯ざぃ丬菮GPSメシヤ・リでChronyて佛りNTPゴ・ハ (丬緧)
- 斯ざぃ丬菮GPSメシヤ・リでChronyて佛りNTPゴ・ハ (剌緧)
- Prometheus2でGrafana6なょりザジヅミ盢覕 ザヲクリホ・トゲヲビヤ・ゾね渨庥衧礹
- NanoPi NEOてNTPゴ・ハ册槊篈 (內ぽでむ)
- NanoPi NEO2ゑv6ブヨジねリ・ゾ・なじり 律緧
- NanoPi NEO2ゑv6ブヨジねリ・ゾ・なじり 剌緧
- ELK Stackてザジヅミ盢覕 FilebeatてNTP絰訇レク叕徖 Logstashて功巤
- NanoPi NEO2(arm64)甧なFilebeatゑヒリト
- NanoPi NEO2ゑ趄ゲヲバギデどァリマグ・ジな兤るり
- NanoPi NEO2甧armbian 5.41 Debian 9 Stretch next 4.14.18