diff --git a/README.md b/README.md index 0316cdd..9bfa6e1 100644 --- a/README.md +++ b/README.md @@ -1,81 +1,40 @@ -![rpidatv banner](/doc/img/spectreiq.jpg) -# rpidatv -**rpidatv** is a digital television transmitter for Raspberry Pi (B,B+,PI2,PI3,Pizero) which output directly to GPIO. -*(Created by Evariste Courjaud F5OEO. Code is GPL)* -# Installation -Install a Raspbian Lite : ([Raspbian Lite](http://www.raspberrypi.org/downloads/raspbian/)) +# avc2ts -```sh -$ wget https://raw.githubusercontent.com/F5OEO/rpidatv/master/install.sh -$ chmod +x install.sh -$ ./install.sh -``` +avc2ts is a video encoder for the Raspberry Pi that encodes the video into H.264 +and encapsulates it into a constant bitrate MPEG-TS trnamsport stream. The input +source can be a Raspberry Pi camera, internal pattern, UVC webcam, Raspberry Pi +display or a VNC client display. -# Hardware -Plug a wire on GPIO 12, means Pin 32 of the GPIO header : this act as the antenna. Length depend on transmit frequency, but with few centimeters it works for local testing. +avc2ts was originally written by Evariste Courjaud F5OEO as part of the [rpidatv] +(https://github.com/F5OEO/rpidatv) package. -# Modulator -**rpidatv** is located in rpidatv/bin folder -``` -rpidatv -2.0.0 -Usage: -rpidatv -i File Input -s Symbolrate -c Fec [-o OutputMode] [-f frequency output] [-l] [-p Power] [-h] --i path to Transport File Input --s SymbolRate in KS (125-4000) --c Fec : 1/2 or 3/4 or 5/6 or 7/8 --m OutputMode - {RF(Modulate QSK in RF need -f option to set frequency)} - {IQ(Output QPSK I/Q} - {PARALLEL(Output parallel (DTX1,MINIMOD..)} - {IQWITHCLK(Output I/Q with CLK (F5LGJ)} - {DIGITHIN (Output I/Q for Digithin)} --f Frequency to output in RF Mode in MHZ --l loop file input --p Power on output 1..7 --x GPIO Pin output for I or RF {12,18,40} --y GPIO Pin output for Q {13,19,41,45} --h help (print this help). -Example : sudo ./rpidatv -i sample.ts -s 250 -c 1/2 -o RF -f 437.5 -l -``` - # Transport stream -**rpidatv** needs a DVB transport stream in input. In the past, ffmpeg was used to generate transport stream. Because ffmpeg is not completely DVB compliant and induces latency, an other tool is proposed : **avc2ts** +This copy of avc2ts is modified for the specific needs of [Copenhagen Suborbitals] +(https://copenhagensuborbitals.com/) rocket flights. For most other uses, in +particular DATV, the original version is probably the better choice. -# H264 encoder and transport stream encapsulator -**avc2ts** is located in rpidatv/bin folder -``` -avc2ts -1.0.0 -Usage: -rpi-avc2ts -o OutputFile -b BitrateVideo -m BitrateMux -x VideoWidth -y VideoHeight -f Framerate -n MulticastGroup [-d PTS/PCR][-v][-h] --o path to Transport File Output --b VideoBitrate in bit/s --m Multiplex Bitrate (should be around 1.4 VideoBitrate) --x VideoWidth (should be 16 pixel aligned) --y VideoHeight (should be 16 pixel aligned) --f Framerate (25 for example) --n Multicast group (optionnal) example 230.0.0.1:10000 --d Delay PTS/PCR in ms --v Enable Motion vectors --i IDR Period --t TypeInput {0=Picamera,1=InternalPatern,2=USB Camera,3=Rpi Display,4=VNC} --e Extra Arg: - - For usb camera name of device (/dev/video0) - - For VNC : IP address of VNC Server. Password must be datv --p Set the PidStart: Set PMT=PIDStart,Pidvideo=PidStart+1,PidAudio=PidStart+2 --s Set Servicename : Typically CALL --h help (print this help). -Example : ./rpi-avc2ts -o result.ts -b 1000000 -m 1400000 -x 640 -y 480 -f 25 -n 230.0.0.1:1000 -``` +# Usage -# Console interface -A console interface is provided under rpidatv/scripts -```sh -$ /home/pi/rpidatv/scripts/gbmenu.sh -``` -# Touchscreen interface -![Rpidatvgui](/doc/img/rpidatvgui.jpg) -A graphical interface is provided under rpidatv/bin/ folder -```sh -$ /home/pi/rpidatv/bin/rpidatvgui ``` + avc2ts -o file -b videorate -m muxrate -x width -y height -f fps -n MulticastGroup [-d PTS/PCR][-v][-h] + -o Path to Transport File Output + -b Video bitrate in bits/s + -m Multiplex bitrate in bits/s (should be around 1.4 of videorate) + -x Image width (should be 16 pixel aligned) + -y Image height (should be 16 pixel aligned) + -f Frame rate + -n Optional multicast group, e.g. 230.0.0.1:10000 + -d Delay PTS/PCR in ms + -v Enable motion vectors + -i IDR period + -t Input type (0=Pi camera, 1=Pattern, 2=USB webcam, 3=Rpi display, 4=VNC) + -e Extra arguments: + - For usb camera name of device (/dev/video0) + - For VNC, the IP address of the server. Password must be datv. + -p Set the PidStart: Set PMT=PIDStart,Pidvideo=PidStart+1,PidAudio=PidStart+2 + -s Set service name; typically the callsign + -h Help +Example: + avc2ts -o result.ts -b 1000000 -m 1400000 -x 640 -y 480 -f 25 -n 230.0.0.1:1000 +```