User Tools

Site Tools


work:quadcopter

This is an old revision of the document!


개발

Heli controls are like following

Throttle/Collective Pitch == up/down Rudder == yaw, rotate left/right Elevator == (bank)/fly forward/backward Aileron == (bank)/fly sideways left/right

openpilot

https://github.com/zhao0079/openpilot/blob/master/hardware/Production/CopterControl/CopterControl%20Schematic.pdf

체크 리스트 - http://wiki.openpilot.org/display/Doc/Hardware+FAQ#HardwareFAQ-ESCsandBESCs BEC 영향 없나? - mbed로

- openpilot esc - x copter, quard copter http://i.imgur.com/AesvWf9.png

esc 세팅 http://wiki.openpilot.org/display/Doc/TurboPWM+ESC's#TurboPWMESC%27s-Whyisthisimportant%3F http://wiki.openpilot.org/display/Doc/RapidESC+Database 데이터베이스

http://git.openpilot.org/browse/OpenPilot

http://www.rc-airplane-world.com/rc-airplane-controls.html

pwm 코드 수정 - http://guyvo-cortex.blogspot.kr/2009_04_01_archive.html - 50mhz 1ms~2ms 로 데이터 수정!

pid 코드 수정 - http://forum.bitcraze.se/viewtopic.php?f=6&t=192 - pid 값 수정해서 스테이블한 상태 만들기

modules/interface/pid.h

http://forum.bitcraze.se/viewtopic.php?f=6&t=192

crazyflie는 기본으로 attitude mode? rate 모드는 뭐지?

Project Quadcopter

http://quadcopter.wordpress.com/

http://wiki.bitcraze.se/_media/projects:crazyflie:hardware:crazyflie_control_board_schematics_rev.f.pdf http://wiki.bitcraze.se/_media/projects:crazyflie:hardware:crazyflie_control_board_rev.f_-_component_placement_top.pdf

http://shop.8devices.com/wifi4things/carambola m-bugs altitude holding

쿼드콥터 만들기 - 8MIPS로 400hz? 제어기 성능보다 추저성능이 중요. http://blog.naver.com/PostList.nhn?from=postList&blogId=solsol8711&categoryNo=15&currentPage=2 - 인터럽트 사용해서 쓰는uart와 i2c가 추적 성능을 낮게 만들지.도 nrf24는 dma로 했나?

칼만필터: http://realsys.co.kr/data/hobby/6_%EC%B9%BC%EB%A7%8C%ED%95%84%ED%84%B0.pdf

## crazyflie

https://bitbucket.org/phiamo/crazyflie-firmware/commits/all

http://forum.bitcraze.se/viewtopic.php?f=11&t=128

슬라이딩 어떻게 하지?

![](accelerometers)

Accel보다 자이로만 사용했을때 계속 밀린다.

GyroBias 값을 0으로 해보았는데, 흠 그럼 더 밀린다.

Gyro에 low pass filter를 적용 해보자!

→ lpf와 average filter(250hz) 적용

low pass filter가 별로 나아지는것은 없어보이는데

  GyroBias가 지대한 영향을 끼치는것 같다. 

분산, 평균을 이용해서 추세를 보는듯.

0.296548, -0.452743, 3.047594 gyro.x: 0.0, gyro.y: 0.0, gyro.z: -0.061035, acc.x: -0.007568, acc.y: 0.004882, acc.z 1.000732 0.295663, -0.450056, 3.115887 gyro.x: 0.030517, gyro.y: 0.0, gyro.z: -0.061035, acc.x: -0.007934, acc.y: 0.004272, acc.z 1.001464 0.292134, -0.452814, 3.190397 gyro.x: 0.0, gyro.y: 0.122070, gyro.z: 0.0, acc.x: -0.007568, acc.y: 0.005126, acc.z 0.999267 0.236752, -0.417580, 3.254106


bias계산 안하고 그냥 손으로 넣은게 나을려나?

bias계산해서 넣으니깐 한쪽으로 계속 치우친다.

날개를 바꾸는것도 이상해.


#### Reading accelerometers

AccelBias 를 사용해서 기울어진 것 찾기.

## openpilot

- http://wiki.openpilot.org/display/Doc/OpenPilot+Flight+Control+board+Common+issues


https://bitbucket.org/danhamilt1/crazyflie-firmware/commits/7445a483fb44a25e730408e293088258be3d11e5?at=stabalizer

모터를 exp? 왜 이렇게 계산하냐?

 motorPowerM1 = limitThrust(calculatePower(thrust + pitch + yaw));
 motorPowerM2 = limitThrust(calculatePower(thrust - roll - yaw));
 motorPowerM3 =  limitThrust(calculatePower(thrust - pitch + yaw));
 motorPowerM4 =  limitThrust(calculatePower(thrust + roll - yaw));

static int32_t calculatePower(int32_t thrust) {

 int32_t value = 0;
 

- value = ipow(UINT16_MAX, -0.5) * ipow(thrust, 1.5); + value = fastPow(UINT16_MAX, -0.5) * fastPow(thrust, 1.5);

 return value;

}

+double fastPow(double a, double b) { + union { + double d; + int x[2]; + } u = { a }; + u.x[1] = (int)(b * (u.x[1] - 1072632447) + 1072632447); + u.x[0] = 0; + return u.d; +}

+static double fastPrecisePow(double a, double b) { + calculate approximation with fraction of the exponent + int e = (int) b; + union { + double d; + int x[2]; + } u = { a }; + u.x[1] = (int)((b - e) * (u.x[1] - 1072632447) + 1072632447); + u.x[0] = 0; + + exponentiation by squaring with the exponent's integer part + double r = u.d makes everything much slower, not sure why + double r = 1.0; + while (e) { + if (e & 1) { + r *= a; + } + a *= a; + e »= 1; + } + + return r * u.d; +} + —- 안드로이드 콘트롤러 <2013-09-20 금 15:31> 이어서 시작 andorid vm 버전 avd 4.3과 avd 4.0.3 설치 두개 설치 E:\adt-bundle-windows-x86_64-20130911\adt-bundle-windows-x86_64-20130911\eclipse 4.3에서 한글이 안나오네. 4.0.3으로 가자! - http://8devices.com/wiki_carambola/doku.php/carambola_robot1 - http://lukse.lt/uzrasai/2013-01-carambola-powered-robot-v2/ - http://github.com/Lukse/cara-rover2 android controllerd rover application cara-rover2를 다운받아서 우선 설치. http://trackfield.webcam.oregonstate.edu/axis-cgi/mjpg/video.cgi?resolution=800x600&amp%3bdummy=1333689998337 mjpeg jni사용해서 빠름 시간나면 안드로이드 말고 pc용 클라이언트도 하나 만들어야 겠다. pyside가 좋겠어. http://forums.thefoundry.co.uk/phpBB2/viewtopic.php?p=37955&sid=c01d69e25a98b521d088f57b582a7232 여기보니 pyqt가 낫다고 하네;;; pc client 수정해서 동작 하도록 만들고 있음 ← 5:3 (97, 114, 100, 32, 102, 97, 117, 108, 116, 32, 104, 97, 110, 100, 108, 101, 114, 93, 10, 82, 48, 32, 61, 32, 50, 48, 48, 48, 53, 48, 48, 48, 10, 82, 49, 32, 61, 32, 48, 10, 82, 50, 32, 61, 32, 48, 10, 82, 51, 32, 61, 32, 50, 48, 48, 48, 48, 50, 49, 67, 10, 82, 49, 50, 32, 61, 32, 50, 48, 10, 76, 82) 그런데 이거 뱃으면서 죽어버렸네.. 3채널은 있지도 않은데. http://www.freertos.org/Debugging-Hard-Faults-On-Cortex-M-Microcontrollers.html 이건 HardFault 메시지? gdbㄷ로 디버깅 필요. ====== Camera ====== 카메라 모듈 USB 카메라 - CMOS USB 2MP 167도 Ø28mm http://www.alibaba.com/product-gs/469335926/CMOS_USB_2MP_Wide_Angle_167.html - 3.0MP HD USB 19mmx19mm 49달러 http://www.aliexpress.com/store/product/3-0MP-compact-HD-USB-camera-module-auto-iris-hardware-snapshot/903991_649483245.html - H264 32×32 http://www.alibaba.com/product-gs/1351816205/720P_H_264_MJPEG_USB2_0.html - 길쭉한 형태 http://www.alibaba.com/product-gs/1162789849/1_5_usb_CMOS_camera_module.html - cmos usb 3.2mp 29mm 원형 http://huentek.com/board/k_sub02_04.php ] - DFM 42BUC03-ML http://www.theimagingsource.com/en_US/products/oem-cameras/usb-cmos-color/dfm42buc03ml/ H: 30 mm, W: 30 mm, L: 15 mm - pogolm —- http://staticwave.ca/source/uvccapture/ 구입 —- 휴엔텍 usb캠 디멘젼 - 1.3M 8×27.3 http://i.imgur.com/FRxUfnS.png - 3M 19×19 http://i.imgur.com/lpHuK8n.png camera mjpg_streamer -i “input_uvc.so -d /dev/video0 -f 10 -r 1280×720” -o output_http.so “ “로 묶어야 하네 mjpg_streamer -i “input_uvc.so -d /dev/video0 -f 10 -r 1280×1024 ” -o “output_file.so -f /root/ -d 1500” http://www.youtube.com/watch?v=eLAqMYy_CEE http://abatis.org.uk/quadv1/ uvcaptuer를 사용해서 디코딩해서 뿌리는 방식 Raspberry Pi Camera Streaming Application (with real Pi camera!) - http://www.youtube.com/watch?v=8cFXnVDa5Cc h264 streaming하는 방법이 있구만 gst-launch-0.10 -v v4l2src device=/dev/video0 ! 'video/x-raw-yuv,width=640,height=480' ! ffmpegcolorspace ! x264enc ! rtph264pay ! udpsink host=192.168.2.112 port=9078 http://blog.chinaunix.net/uid-22666248-id-282313.html http://www.unimv.com/en/productshow.asp?id=892 ar9331로 이걸로 h.264하는데 리눅스에서 인코딩 http://www.trans-omni.co.uk/capture/v4l2capturetoH264.c http://wiki.oz9aec.net/index.php/Gstreamer_cheat_sheet http://lists.freedesktop.org/archives/gstreamer-embedded/2012-October/000918.html mjpeg → yuv → x264 http://ffmpeg.gusari.org/viewtopic.php?f=12&t=816&start=10 c920 신정동에서 구입 - 계산서 가능한지? - 02-2654-9956 (컴텍/ 옥션) - http://itempage3.auction.co.kr/DetailView.aspx?ItemNo=A788219452&frm3=V2 c930e http://prod.danawa.com/info/?pcode=2225675 h.264 : https://github.com/vecio/MediaCodecDemo/blob/master/src/io/vec/demo/mediacodec/DecodeActivity.java mediacodec으로 디코딩. gstreamer ffserver - http://ffmpeg.org/pipermail/ffserver-user/2013-January/000277.html raspvl4 mkfifo stream.video.h264 ./raspiv4l.bin -o > stream.video.h264 & ./ffmpeg -re -f h264 -i stream.video.h264 -c copy -f flv “${RTMP_URL}/${KEY} flashver=FME/2.5\20(compatible;\20FMSc\201.0)” http://www.raspberrypi.org/phpBB3/viewtopic.php?f=38&t=41844&start=50 crtmpserver를 띄어서 ffmpeg로 /dev/video0 보냅 http://wiki.alessandro.delgallo.net/wiki/index.php/Crtmpserver —- ffserver: http://ffmpeg.org/trac/ffmpeg/wiki/Streaming%20media%20with%20ffserver —- 안드로이드에서 h.264로 스트리밍 서버 RtspServer https://github.com/fyhertz/libstreaming https://code.google.com/p/spydroid-ipcamera/ —- 안드로이드에서 rtsp videoview 사용 http://stackoverflow.com/questions/11715702/cannot-play-rtsp-video-in-videoview-in-samsung-galaxy-s2 http://stackoverflow.com/questions/3937241/reduce-video-buffering 버퍼링시간 줄이기 —- videoview를 사용하고, 그래픽을 overlay함 : http://stackoverflow.com/questions/17899474/draw-overlay-hud-on-android-videoview https://github.com/arthurbenemann/droidplanner —- # droidplander도 rtsp사용하네 쿼드 돌아다니는거 설정 가능하게 만든 앱. 괜찮네. http://stackoverflow.com/questions/17899474/draw-overlay-hud-on-android-videoview/18221800#18221800 https://github.com/arthurbenemann/droidplanner/wiki/Build-Setup - http://ardupilot.com/forum/viewforum.php?f=15 droidplaner forum —- vlc “sudo -u pi vlc-wrapper -I dummy -vvv v4l2:/dev/video0 :v4l2-width=352 :v4l2-height=288 :v4l2-fps=10 :sout='#transcode{vcodec=MJPG,vb=500,fps=10,scale=1,width=352,height=288,acodec=none}:std{mux=ts,access=udp{ttl=10},dst=mydyndnshostname.domain.no:2000}' :sout-all :sout-keep”

“C:\Program Files (x86)\VideoLAN\VLC\vlc.exe” udp:@226.0.1.150:2000 –sout=#transcode{vcodec=MJPG,vb=500,fps=10,scale=1,width=352,height=288,acodec=none}:duplicate{dst=http{mux=mpjpeg,dst=:8080/},dst=display} :sout-all :sout-keep —- 보내기 ./vlc –live-caching 0 –sout-rtp-caching 0 -vvv v4l2:/dev/video1 :v4l2-standard= :v4l2-dev=/dev/video0 –v4l2-width=352 –v4l2-height=288 –sout-x264-tune zerolatency –sout-x264-bframes 0 –sout-x264-options repeat-headers=1 –sout-x264-aud –sout-x264-vbv-maxrate=1000 –sout-x264-vbv-bufsize=512 –sout-x264-slice-max-size=1460 –sout '#duplicate{dst=“transcode{vcodec=h264,vb=384,scale=0.75}:rtp{dst=130.149.228.93,port=49170}”,dst=display}' http://devcon-1.blogspot.kr/2013/01/ffmpegvlc-command-lines-linux.html

—- vlc c920에서 다이렉트로 h.264 보냄 cvlc v4l2:/dev/video1:chroma=h264:width=800:height=600 –sout '#standard{access=http,mux=ts,dst=localhost:8080,name=stream,mime=video/ts}' -vvv http://wiki.matthiasbock.net/index.php/Logitech_C920,_streaming_H.264 —-VLC is a popular open source video player that can capture, playback, streaming video. It's live performance is not that great. v4l capture and streaming (version 1.0.2) /usr/local/av/bin/vlc -I dummy v4l: :v4l-vdev=/dev/video :v4l-adev= :v4l-norm=1 :v4l-frequency=-1 :v4l-caching=100 :fps=15 :v4l-channel=0 :v4l-width=480 :v4l-height=360 :v4l-chroma=RGBO –verbose=0 -I telnet –telnet-port=8000 –sout=#transcode{venc=x264{keyint=10, vbv-maxrate=256},vb=256, width=480, height=360, fps=15}:std{access=udp{ttl=32}, mux=ts, dst=127.0.0.1:32816}

  v4l2 capture and streaming (version 1.1.9)
      /opt/mutualink/media/bin/vlc -I dummy v4l2:///dev/video0 :v4l2-adev= :v4l2-standard=3 :v4l2-frequency=-1 :v4l2-caching=100 :fps=14 :v4l2-channel=0 :v4l2-width=480 :v4l2-height=352 :v4l2-chroma=YUV2 --verbose=0 -I telnet --telnet-port=8000 --sout=#transcode{venc=x264{keyint=10, tune=zerolatency, vbv-maxrate=256},vb=256, width=480, height=352, fps=14}:std{access=udp{ttl=32}, mux=ts, dst=127.0.0.1:45592}
  v4l2 H.264 capture and streaming (modified version for capturing h.264 video)
      /opt/mutualink/media/bin/vlc -I dummy v4l2:///dev/video0 :v4l2-adev= :v4l2-standard=3 :v4l2-frequency=-1 :v4l2-caching=100 :fps=14 :v4l2-channel=0 :v4l2-width=480 :v4l2-height=352 :v4l2-chroma=H264 :v4l2-set-ctrls={video_bitrate=200000,video_gop_size=10} --verbose=0 -I telnet --telnet-port=8000 --sout=#std{access=udp{ttl=32}, mux=ts, dst=127.0.0.1:47309}
   
  v4l2 capture RTP streaming output
      /usr/local/mlinkmedia/bin/cvlc v4l2:///dev/video1:width=480:height=360 -I telnet --telnet-port=8000 --sout="#transcode{venc=x264{keyint=50,vbv-maxrate=256},vb=256,acodec=none}:rtp{mux=ts,dst=192.168.10.121,port=1234}"
      
 v4l2 capture RTSP streaming output
  /usr/local/mlinkmedia/bin/cvlc v4l2:///dev/video1:width=480:height=360 -I telnet --telnet-port=8000 --sout="#transcode{venc=x264{keyint=50,vbv-maxrate=256},vb=256,acodec=none}:rtp{mux=ts,dst=192.168.10.121,port=1234}"
 v4l2 capture H.263 streaming output
  /usr/local/mlinkmedia/bin/cvlc v4l2:///dev/video1:width=480:height=360 -I telnet --telnet-port=8000 --sout="#transcode{{vcodec=H263,width=352,height=288,vb=256,fps=15,acodec=none}:std{access=udp{ttl=32}, mux=ts, dst=192.168.10.121:1234}"
  v4l2 capture H.264 streaming output
  /usr/local/mlinkmedia/bin/cvlc v4l2:///dev/video1:width=480:height=360 -I telnet --telnet-port=8000 --sout="#transcode{width=480,height=360,venc=x264{keyint=15,level=1.3,ratetol=90,vbv-maxrate=110,profile=base,no-cabac,nr=1000},vcodec="H264",scale=0.25,vb=100,acodec=mp4a,ab=10,channels=1,fps=15}:std{access=udp{ttl=32}, mux=ts, dst=192.168.10.121:1234}"
  v4l2 capture MPEG2 streaming output
  /usr/local/mlinkmedia/bin/cvlc v4l2:///dev/video1:width=480:height=360 -I telnet --telnet-port=8000 --sout="#transcode{venc=ffmpeg{keyint=0},vcodec=mp2v,vb=256,acodec=none, width=480, height=360}:std{access=udp{ttl=32}, mux=ts, dst=192.168.10.121:1234}"
  v4l2 capture MPEG4 streaming output
  /usr/local/mlinkmedia/bin/cvlc v4l2:///dev/video1:width=480:height=360 -I telnet --telnet-port=8000 --sout="#transcode{venc=ffmpeg{keyint=0},vcodec=mp4v,vb=256,acodec=none, width=320, height=240}:std{access=udp{ttl=32}, mux=ts, dst=192.168.10.121:1234}"
  receive udp video and display
  /usr/local/mlinkmedia/bin/vlc udp://@192.168.10.250:1234 --qt-minimal-view --video-on-top --udp-caching=300 --wx-config-title "Sensoray Video" --qt-display-mode=2 --no-qt-name-in-title --key-play-pause ''
  receive rtp video and display
  /usr/local/mlinkmedia/bin/vlc --no-overlay rtp://@192.168.10.250:1234 --qt-minimal-view --video-on-top --udp-caching=300 --wx-config-title "Sensoray Video" --qt-display-mode=2 --no-qt-name-in-title --key-play-pause ''

Receive rtsp video and display

  /usr/local/mlinkmedia/bin/vlc --no-overlay rtsp://192.168.10.121:8554/chnl1.sdp --qt-minimal-view --video-on-top --udp-caching=300 --wx-config-title "Sensoray Video" --qt-display-mode=2 --no-qt-name-in-title --key-play-pause ''

Receive udp video and output rtsp server

  /usr/local/mlinkmedia/bin/vlc udp://@192.168.10.250:1234 -I telnet --telnet-port=8000 --sout '#rtp{dst=0.0.0.0,sdp=rtsp://0.0.0.0:8554/chnl1.sdp,mux=ts}'

winpvr input vnic

  /usr/local/av/bin/vlc -I dummy pvr:///dev/video0 :pvr-adev= :pvr-bitratemode=1 :pvr-frequency=-1 :pvr-caching=100 :fps=12 :pvr-channel=2 :pvr-width=320 :pvr-height=240 --verbose=0 -I telnet --telnet-port=8000 --sout=#transcode{venc=x264{keyint=10, vbv-maxrate=256},vb=256, width=320, height=240, fps=12}:std{access=udp{ttl=32}, mux=ts, dst=127.0.0.1:45861}

H.264 UDP MP2T Streaming

      :sout=#transcode{venc=x264{keyint=50, vbv-maxrate=512},width=320,height=240,vb=512,fps=15,acodec=none}:std{access=udp{ttl=32}, mux=ts, dst=192.168.10.121:1234}
     /usr/local/av/bin/vlc udp://@192.168.10.121:1234 --verbose=0 -I telnet --telnet-port=8000 --sout=#transcode{venc=x264{keyint=50, vbv-maxrate=256},vb=256}:std{access=udp{ttl=32}, mux=ts, dst=127.0.0.1:32779}
  1. -sout=#transcode{vcodec=h264,vb=192,scale=1}:std{access=udp{ttl=32}, mux=ts, dst=127.0.0.1:32794} -I telnet –telnet-port=8000 –intf rc –rc-host localhost:5555 –rc-fake-tty

H.264 RTP MP2T Streaming

  :sout=#transcode{venc=x264{keyint=10, tune=zerolatency, vbv-maxrate=512},vb=512,acodec=none, width=352, height=288}:rtp{mux=ts,dst=192.168.10.121, port=6010,sdp=file:///home/vlcrpmbuild/file.sdp}

H.263 RTP MP2T Streaming

      :sout=#transcode{vcodec=H263,width=176,height=144,vb=256,fps=15,acodec=none}:rtp{mux=ts,dst=192.168.10.121,port=1234,sdp=file://file.sdp}

RTP (recevive via SDP) Transcoding H.264 RTP MP2T Streaming

/usr/local/av/bin/vlc –loop /root/file.sdp –verbose=0 -I telnet –telnet-port=8000 –sout=#transcode{venc=x264{keyint=50, vbv-maxrate=256},vb=256}:std{access=udp{ttl=32}, mux=ts, dst=127.0.0.1:32788}

H.264 RTSP Server/Client

:sout=#transcode{venc=x264{keyint=50, vbv-maxrate=512},width=320,height=240,vb=512,fps=15,acodec=none}:rtp{mux=ts,sdp=rtsp:0.0.0.0:554/chnl1.sdp} /usr/local/av/bin/vlc rtsp:192.168.10.238/chnl1.sdp

Transcoding MPEG2

:sout=#transcode{vcodec=mp2v,vb=1024,width=320,height=240,acodec=none}:rtp{mux=ts,sdp=rtsp:0.0.0.0:554/chnl1.sdp} Transcoding MPEG4 :sout=#transcode{vcodec=mp4v,vb=1024,width=320,height=240,fps=15,acodec=none}:rtp{mux=ts,sdp=rtsp:0.0.0.0:554/chnl1.sdp}

Transcoding H.263

:sout=#transcode{vcodec=H263,width=176,height=144,vb=256,fps=15,acodec=none}:rtp{mux=ts,sdp=rtsp:0.0.0.0:554/chnl1.sdp} Receiving UDP and Sending out RTP /usr/local/av/bin/vlc -I dummy udp:@127.0.0.1:6004 –sout=#rtp{dst=192.168.10.104, port=1234}

Receiving UDP and Sending out UDP

  /usr/local/av/bin/vlc -I dummy udp://@127.0.0.1:6004 --sout=#std{access=udp{ttl=32}, mux=raw, dst=192.168.10.104:1234}

Receiving UDP and Sending out RTSP

  
  /usr/local/av/bin/vlc -I dummy udp://@127.0.0.1:6004 --sout=#rtp{sdp=rtsp://0.0.0.0:554/chnl1.sdp}
  /usr/local/av/bin/vlc -I dummy udp://@127.0.0.1:6004 --sout=#rtp{mux=ts,sdp=rtsp://0.0.0.0:554/chnl1.sdp}

Receiving UDP and Streaming UDP + RTSP

/usr/local/av/bin/vlc -I dummy udp:@127.0.0.1:6004 –sout=#duplicate{dst=rtp{mux=ts,sdp=rtsp:0.0.0.0:554/chnl1.sdp},dst=std{access=udp{ttl=32}, mux=ts, dst=192.168.10.104:1234}}

Transcoding

/usr/local/av/bin/vlc -I dummy udp:@127.0.0.1:6004 –sout=#transcode{venc=ffmpeg{keyint=0},vcodec=mp2v,vb=256,acodec=none, width=320, height=240}:rtp{mux=ts, dst=192.168.10.104, port=1234} VideoOutCodec = mpeg4 /usr/local/av/bin/vlc -I dummy udp:@127.0.0.1:6004 –sout=#transcode{venc=ffmpeg{keyint=0},vcodec=mp4v,vb=256,acodec=none, width=320, height=240}:rtp{mux=ts, dst=192.168.10.104, port=1234}

      VideoOutCodec = h.263

/usr/local/av/bin/vlc -I dummy udp:@127.0.0.1:6004 –sout=#transcode{venc=ffmpeg{keyint=0},vcodec=H263,vb=256,acodec=none, width=352, height=288}:rtp{mux=ts, dst=192.168.10.104, port=1234} VideoOutCodec = h.264 /usr/local/av/bin/vlc -I dummy udp:@127.0.0.1:6004 –sout=#transcode{venc=x264{keyint=0, vbv-maxrate=256},vb=256,acodec=none, width=352, height=288}:rtp{mux=ts, dst=192.168.10.104, port=1234}


vlc v4l2: :v4l2-dev=/dev/video0 :v4l2-width=640 :v4l2-height=480 –sout=”#transcode{vcodec=h264,vb=800,scale=1,acodec=mp4a,ab=128,channels=2,samplerate=44100}:rtp{sdp=rtsp::8554/live.ts}” -I dummy

cvlc -v v4l2:/dev/video0:chroma=“H264”:width=1024:height=570:fps=30 –sout=“#rtp{sdp=rtsp::8554/live}” –rtsp-timeout=-1

     http://stackoverflow.com/questions/15787967/capturing-h-264-stream-from-camera-with-gstreamer
     

—- c920 사용하는 pandaboard rtsp 서버를 만들었네 https://github.com/limitz/PB_C920

carambola는 vlc 패키지가 없네;;; gstreamer 0.10.36버전 쓰는데, 이걸로 과연 스트리밍이 될까?

http://frankuo.blogspot.kr/2013/03/gstreamer-from-010x-to-10x-in-openwrt.html

이렇게 업데이트 한사람도 있지만;

휴엔텍에서 h.264

휴엔텍에서 h.264 \


v4l2-ctl –list-formats v4l2-ctl –list-formats-ext

v4l2-ctl –set-fmt-video=width=1280,height=720,pixelformat=1 v4l2-ctl –set-parm=24

ffmpeg -f video4linux2 -r 24 -s 1280×720 -i /dev/video0 -vcodec copy -f rtp rtp:192.168.1.1:7010 ffmpeg -f video4linux2 -r 24 -s 640×480 -i /dev/video0 -vcodec copy -f rtp rtp:192.168.1.1:7010


gstreamer + capture

opkg package install 1. feed/multimedia/capture/Makefile 만들기 2. ./scripts/feeds update -a 3. ./script/feeds install capture 4. make menuconfig 5. make 6.

scp gst-mod-rtp_0.10.31-1_ar71xx.ipk root@192.168.1.1:~/ scp libgstrtp_0.10.36-1_ar71xx.ipk root@192.168.1.1:~/

scp libgsttag_0.10.36-1_ar71xx.ipk  root@192.168.1.1:~/

scp libgstpbutils_0.10.36-1_ar71xx.ipk root@192.168.1.1:~/

scp libgstinterfaces_0.10.36-1_ar71xx.ipk root@192.168.1.1:~/ scp libgstaudio_0.10.36-1_ar71xx.ipk root@192.168.1.1:~/

scp gst-mod-h264parse_0.10.23-1_ar71xx.ipk root@192.168.1.1:~/

run.sh ./capture -c 10000 -o | gst-launch -v fdsrc ! legacyh264parse ! rtph264pay ! udpsink host=192.168.1.1 port=400


bonecam.sdp

v=0 o=- 1188340656180883 1 IN IP4 127.0.0.1 s=Bonecam streamed by GStreamer i=bonecam t=0 0 a=tool:GStreamer a=type:broadcast m=video 4000 RTP/AVP 96 c=IN IP4 127.0.0.1 a=rtpmap:96 H264/90000

work/quadcopter.1396457000.txt.gz · Last modified: 2018/07/18 14:09 (external edit)