h.264 decoder

Transcription

h.264 decoder
H.264/AVC SD
Audio Video Encoder / Decoder
VOLTplus • Gornji Ribnik • Srbija • www.voltplus.co.rs
VOLTplus H.264/AVC SD Audio Video Encoder / Decoder je hardverska
platforma koja koristi jedan od novijih načina kodiranja video materijala zasnovanog na
H.264/AVC standardu koji uveliko nalazi primenu kako u okvirima zabavne potrošačke
elektronike tako i u uređajima namenjenim profesionalnom televizijskom emitovanju video
sadržaja visoke definicije (HD video).
H.264/MPEG-4 AVC predstavlja standard kompresije pokretnih slika zasnovan na
blokovskom modelu kodeka razvijenog od strane ITU-T Video Coding Experts Group
(VCEG) u saradnji sa ISO/IEC Moving Picture Experts Group (MPEG). ITU-T H.264
standard i ISO/IEC MPEG-4 AVC standard (ISO/IEC 14496-10 - MPEG-4 Part 10,
Advanced Video Coding) predstavljaju sinonime za jedan te isti standard jer u osnovi
imaju identičnu tehničku specifikaciju.
Kako H.264 video kodek donosi bitna poboljšanja na polju ostvarene kompresije
(više nego dvostruko poboljšanje u odnosu na MPEG-2 standard) a imajući u vidu stalni
napredak komunikacionih tehnologija i sveprisutnu širokopojasnu mrežnu infrastrukturu,
kompanija Volt Plus se odlučila da za distribuciju komprimovanog materijala koristi
komutacione paketne mreže tj. IP mrežni protokol.
VOLTplus H.264/AVC SD Audio Video Encoder / Decoder
Ovaj hardverski uređaj zasnovan je na H.264 koprocesoru koji omogućava
kodiranje i dekodiranje videa korišćenjem osnovnog profila H.264 kodeka nivoa 3 tj.
podržava rezolucije do veličine slike standardne definicije (SD video). Audio podsistem
koristi MPEG-4 Advanced Audio Coding standard tj. AAC-LC dvokanalnu audio
kompresiju / dekompresiju sa uzorkovanjem sirovog materijala do brzine od 48kHz.
Kompletna platforma je projektovana i realizovana oko Microchipovog PIC-32MX
mikrokontrolera koga pokreće operativni sistem zasnovan na linux jezgru a koji je u
potpunosti razvijen i prilagođen u kompaniji Volt Plus.
H.264/AVC video karakteristike:
 Osnovni H.264 profil kodeka (nivo 3), enkodiranje i dekodiranje I i P
frejmova;
 Stansardno podržane rezolucije:
o 720x480/576 (NTSC/PAL) 640x480 (VGA)
o 720x240 (HVR) 640x240 (HVR)
o 352x480 (HHR) 320x480 (HHR)
o 352x240/288 (SIF/CIF) 320x240 (QVGA)
 Podržane su i rezolucije definisane od strane korisnika;
 Puni 30/25 fps, mogućnost izbora brzine osvežavanja od strane korisnika:
o 24 | 15 | 10 | 7.5 | Variable fps
 Frame mod kodiranja (progressive);
 Field mod kodiranja (interlaced);
 Podržane brzine od 64 Kbps do 10 Mbps;
 Konstantni (CBR) i varijabilni (VBR) bitrate;
 Quarter-Pel Motion procena (4x4 mod);
 Automatsko odlučivanje o odstupanjima u transferu – Rate-distortion mod;
 Podešavajići deblokacioni filter;
 Visokokvalitetni plifazni horizontalni i vertikalni filter;
 Podešavanje promene veličine slike od strane korisnika (Input/Output);
 Napredni video pre-procesor sa impulsnom i redukcijom šuma;
 Simultano enkodiranje i dekodiranje;
 Dekodiranje dva kanala sa mogućnošću slike u slici i skaliranja;
 4x ubrzano reprodukovanje unapred i unazad, usporena reprodukcija;
 visokokvalitetni digitalni zum;
AAC audio karakteristike:
 Hi-Fi 2-kanalno AAC-LC enkodiranje i dekodiranje;
o 22.05 | 24 | 32 | 44.1 | 48 kHz brzina semplovanja
 Podržane brzine od 8 Kbps do 384 Kbps;
VOLTplus H.264/AVC SD Audio Video Encoder / Decoder je uređaj koncipiran
tako da bude veoma fleksibilan i primenljiv u raznim situacijama. Hardverski
komplet se sastoji iz dva uređaja:
 VOLTplus H.264/AVC SD Audio Video Encodera i
 VOLTplus H.264/AVC SD Audio Video Decodera.
Na sledećoj ilustraciji prikazana je blok šema funkcionisanja sistema:
Funkcionalna blok-šema VOLTplus H.264/AVC SD Audio Video Encodera
Funkcionalna blok-šema VOLTplus H.264/AVC SD Audio Video Decodera
Kodirani materijal Encoder isporučuje preko ethernet mrežnog interfejsa (IEEE
802.3). IP saobraćaj moguće je distribuirati putem UDP protokola, RTP protokola kao i u
obliku transportnog strima kompatibilnog sa DVB-T/S/C standardom (paketna
enkapsulacija sa parametrima za H.264 algoritam kompresije).
Komunikacija između enkodera i dekodera moguća je putem svih vrsta
širokopojasnih (broadband) konekcija koje omogućavaju kvalitetan saobraćaj i stabilnu
vezu kako u odlaznom (upload) tako i u dolaznom (download) smeru. Jedna od
najinteresantnijih mogućnosti je upotreba veoma pristupačnih Mikrotik Routerboard
sistema za realizaciju bežičnih (wireless) linkova čime se, u kombinaciji sa VOLTplus
H.264/AVC SD Audio Video Encoder / Decoder uređajima, dobija visokoprofesionalni
digitalni audio-video link za najrazličitije namene koje zahtevaju visok kvalitet slike i tona.
Primena VOLTplus H.264/AVC SD Audio Video Encoder / Decoder uređaja još je
jednostavnija ukoliko se za distribuciju IP saobraćaja koriste zakupljeni vodovi ili mrežna
infrastruktura nekog od postojećih internet provajdera. Podatke koje isporučuje enkoder
preuzima neki od mrežnih rutera i dalje prosleđuje do odredišne lokacije na kojoj ih prima
dekoder i vrši konverziju digitalnog signala u početni AV oblik.
Imajući u vidu mogućnosti uređaja polje primene je veoma široko – od namenskih
audio-video linkova, sistema za emitovanje video materijala putem interneta do bežičnih
distribucionih sistema za krajnje korisnike.
Komplet VOLTplus H.264/AVC SD Audio Video Encoder / Decoder uređaja.
Uređaj je veoma kompaktnih dimenzija. Isporučuje se u metalnoj kutiji koja može
da se pričvrsti za panel nosač namenjen ugradnji u rek ormare.
Composite in/out
SDI in/out
Ulazno/Izlazni konektori Composite:

Video I/O
o SDI in/out
o Y/C in/out
o Composite in/out

Audio I/O
o R/L in/out
o SPDIF

Ethernet (RJ45)

Power

TS-OUT (H.264 transport stream)
Dimenzije:

Box size (142 x 217 x 32mm)
18V DC power brick uključen u pakovanju.
transport stream connector
1 +5.0 V
2 +5.0 V
3 +5.0 V
4 +5.0 V
5 not connected 6 not connected
7 not connected 8 not connected
9 GND
10 GND
11 TSCLK
12 PSYM
13 not connected 14 DVAL
15 TS 6
16 TS 7
17 TS 4
18 TS 5
19 TS 2
20 TS 3
21 TS 0
22 TS 1
23 GND
24 GND
25 not connected 26 not connected
27 not connected 28 not connected
29 GND
30 GND
31 not connected 32 not connected
33 not connected 34 not connected
TS-OUT (H.264 transport stream)
H.264/AVC SD Audio Video Encoder / Decoder poseduje paralelni TS-konektor
na kome je prisutan H.264 transport stream 188 bajta.
TS-Adapter i RealTime clock
H.264/AVC SD Audio Video Encoder / Decoder ima mogicnost insertovanja
pogretnog logo-a od maksimalno 100 frejmova kao i sata, zbog ove mogucnosti na TSAdapteru nalazi se i RealTime clok koji radi na sopstvenom napajanju ukoliko uredjaj nije
napojen.
H.264/AVC SD Audio Video Encoder / Decoder pokreće operativni sistem
zasnovan na linux jezgru koji je u potpunosti razvijen i prilagođen u kompaniji Volt Plus.
Jezgro sistema i neophodni konfiguracioni fajlovi za podrazumevano podešavanje uređaja
nalaze se na CF kartici koja je sastavni deo uređaja.
Nakon povezivanja uređaja i dovođenja napajanja automatski se vrši učitavanje
operativnog sistema i pokretanje H.264/AVC SD Audio Video Encodera / Decodera prema
predefinisanim parametrima. Kako bi našim korisnicima olakšali korišćenje i omogućili da
veoma jednostavno iskoriste sve raspoložive mogućnosti uređaja, razvili smo aplikaciju
koja vrši sva neophodna setovanja sa nekog od personalnih računara pod Windows
operativnim sistemom priključenim na lokalnu mrežu.
Aplikacija za PC računar kojom se vrše podešavanja radnih parametara H.264/AVC SD uređaja.
Veliki broj raspoloživih opcija za podešavanje radnih parametara H.264/AVC SD uređaja.
Za potrebe daljinske administracije uređaja pored navedene PC aplikacije moguće
je koristiti i telnet protokol. Preko ovog mrežnog komunikacionog protokola takođe se
mogu vršiti sva raspoloživa podešavanja i pokretati svi modovi rada enkodera / dekodera
pomoću CLI interfejsa. Osim toga, u ovom režimu rada u svakom trenutku je dostupan i
sistem pomoći (help) nalik onom na linux/dos operativnim sistemima.
Mogućnosti uređaja se neprekidno nadograđuju i proširuju.
Za naprednije korisnike: Podešavanje radnih parametara H.264/AVC SD uređaja
putem telnet klijenta.
U toku su i završna testiranja podrške za H.264/MPEG-4 ts (transport stream).
VOLTplus H.264/AVC SD Audio Video Encoder ima mogućnost da materijal nakon
obrade kompresionim kodekom isporuči u formatu kompatibilnim sa kontejnerskim ts
standardom koji koriste DVB distribucioni sistemi (DVB-S, DVB-T, DVB-C).
Ovakav transportni format moguće je primiti i pogledati nekim od popularnih
programa za reprodukciju AV sadržaja na PC platformi (kao što je npr. VLC Player) čime
se polje primene VOLTplus H.264/AVC SD uređaja još više proširuje.
Kontakt:
adresa:
Kompanija VOLTplus
Gornji Ribnik
37240 Trstenik, Srbija
web:
http://www.voltplus.co.rs
e-mail:
[email protected]
[email protected]
tel:
+381 37 731 771
mob:
+381 63 660 547
primer konfiguracije enkodera za mod transport strima
tsstream -c 239.1.1.1 -port 1200 -rtp -pmpid 100 -vpid 101 -apid 102 -wd
-c
adresa klienta ili multikast adresa
-port
port
-rtp
slanje paketa real time protokolom
-pmpit pid po kome se salje program tabela / 0 iskljucuje program tabelu
-vpid
video pid
-apid
audio pid
-wd
aktiviranje Watchdog timer
enkoder paralelno salje transport strim na transport strim i eternet konektor
primer konfiguracije enkodera za mod qbox strima
udpstream -c 239.1.1.1 -port 1200 -b 1400 -wd
-c
adresa klienta ili multikast adresa
-port
port
-b
velicina paketa
-fs
velicina paketa fiksne velicine
-wd
aktiviranje Watchdog timer
primer konfiguracije dekodera
streamplay -s 192.168.0.200 -port 1200 -mcast 239.1.1.1 -port 1200 -i cp0 -wd
-s
adresa servera
-mcast ukoliko postoji iskljucuje adresu servera
-port
port
-i
mrezni interfejs
-wd
aktiviranje Watchdog timer
decoder ima mogucnost insertovanja staticnog ili pokretnog znaka kao i sata
primer konfiguracije
logo -lname logo -frame 100 -speed 25 -x 568 -y 40 -clock -xc 588 -yc 136
-lname
naziv loagoa
-frame
broj slika za prikaz pokretnog znaka (logo00.bmp do logo99.bmp)
-speed brzina prikaza znaka u frejmovima
-x
-y
kordinate prikaza znaka
-clock aktiviranje prikaza sata
-xc
-yc
kordinate prikaza sata
slike iskopirati u direktorijum \logo\
na raspolaganju su vam i dodatne komande kao na primer
osdfill 0 0 0 720 480
sa bojom iz palete 0 boji prostor 0,0 i 720,480
osdpalette 15 255 255 255 200
podesava paletu 15 r255 g255 b255 transparentnost 200
osdshow 1 0 0
aktiviranje osd-a od tacke 0,0
palete se generise iz prve slike u nasem slucalu logo00.bmp
prikaz sata je u boji iz palete 0 a pozadina iz palete 15
restart
brief Reboot the codec
usage: restart
This command reboots the codec and resubscribes to all events. No state is
otherwise
preserved.
rawcmd
brief Send a raw command to the codec specifying opcode and arguments directly.
usage: rawcmd <ObjectID> <opcode> [arg0] [arg1] [arg2] [arg3] [arg4] [arg5]
The rawcmd command is used to send commands to the host where the opcode and
arguments are known, but could not otherwise be specified by other supported
commands. No error checking is done on the command whatsoever as it exects
the caller to use correct object ID, opcode, and all arguments.
It is recommended that this command not be used unless given specific
instructions.
param ObjectId ID of the target object
param Opcode Opcode of the command
param arg0 Argument 0 to the command
param arg1 Argument 1 to the command
param arg2 Argument 2 to the command
param arg3 Argument 3 to the command
param arg4 Argument 4 to the command
param arg5 Argument 5 to the command
sleep
brief Sleep for a specified number of seconds
usage: sleep <time>
The sleep command is used to pause execution in the shell. It is typically
used for test scripts where an operation is started and let to continue
for an amount of time, such as record or playback.
param time Number containing of time to sleep specified in seconds
system
brief Execute a system call in the parent Linux shell
usage: system <command>
The system command is used to execute a command in the parent Linux shell.
Note that the command should be contained within quotes.
param command String containing the command to execute
echocmd
brief Generate an echo event with payload[0] same as argument[0]
usage: echocmd <payload>
The echo command is used to generate an echo event with a known payload.
The command is typically used during bringup to confirm that
the interrupt system is working.
param payload Number which is sent back in the echo event payload
qverbose
brief Set the verbosity mode of the codec's serial port
usage: qverbose
This command is used to set the verbose level of the codec's debug
serial port. If the command is used with no arguments then the
valid verbose levels are shown. The verbose levels are
none, fatal, error, warning, info0, info1, info2, info3, and debug.
The info levels produce slightly more information at each step. Note
that info3 and debug list every command received and event sent and
realtime playback may no longer be possible.
param Verbosity String containing verbose level
mequery
brief Display low-level codec status
usage: mequery
This command shows low-level codec status.
query
brief Display encoder and decoder status information
usage: query
This command is used to display encoder and decoder status information.
The data displayed is not synchronized with any particular event and
values are sample somewhat arbitrarily from the codec. However, you would
expect somewhat stable values such as performance, or increasing values
such as frames encoded/decoded
play
brief Decode and display a file
usage: play [/path/to/file] [start time] [pause flag]
The play command is used to decode and display a file, which on the Linux
file system could be either a true file, or a named pipe connected to
a server.
param /path/to/file Path to the file to be played
param start time The first frame to be displayed should have this time
param pause flag Paused at the first display frame
bplay
brief Decode and display a stored file backward
usage: bplay [/path/to/file] [start time]
The play command is used to decode and display a file backward
param /path/to/file Path to the file to be played
param start time The first frame to be displayed should have this time
dstop
brief Stop the AV decoder
usage: dstop
This command is used to stop the AV decoder. The display is held at the
last decoded frame and is deinterlaced if necessary.
dpause
brief Pause the decoder at currently displayed frame
usage: dpause
dresume
brief Resume to linear playback from the current trick play state
usage: dresume
This command is used to transition to linear playback with audio from
a trick play state.
scan
brief Forward scan through the screen at a rate of 2x or 4x, deinterlacing
if necessary.
usage: scan <rate>
param rate Scan rate, either 2 or 4
bscan
brief Backward scan through the screen at a rate of 2x or 4x, deinterlacing
if necessary.
usage: bscan <rate>
param rate Scan rate, either 2 or 4
slow
brief Play current file in slow motion with speed 1/factor with no audio
output.
usage: slow <factor>
param factor Speed of slow motion
bslow
brief Backward play current file in slow motion with speed 1/factor with no audio
output.
usage: bslow <factor>
param factor Speed of slow motion
s
brief Step the AV decoder forward one frame and deinterlace if necessary
usage: s
bs
brief Step the AV decoder backward one frame and deinterlace if necessary
usage: bs
iplay
brief Playback of I-frames only
usage: iplay numOfFrameTime
The iplay command is used to playback I-frames only. Only the
I frame is sent to the decoder.
param number of times to display each I frame
biplay
brief Backward playback of I-frames only
usage: biplay numOfFrameTime
The biplay command is used to backward playback I-frames only. Only the
I frame is sent to the decoder.
param number of times to display each I frame
ipause
brief Pauses the decoder at the next I-frame and deinterlaces
as necessary.
usage: ipause
bipause
brief Pauses the decoder at the prev I-frame and deinterlaces
as necessary.
usage: bipause
preview
brief Enable preview of video input on video output
usage: preview [disable]
This command is used to echo the video input to the video output.
Note that the echoed video will be after post-processing by the
video input and therefore will already be scaled, cropped, and
filtered. Note that the phyisical display of the output can be
disabled in which case the host can receive capture related
events such as preprocessing statistics. The default is to echo
the video to the display.
param disable Number, either 0 for enable output or 1 to disable output
trigger
brief Fires the recording trigger and starts outputting frames
usage: trigger
triggercfg
brief Configure recording trigger guardbands
usage: triggercfg <minvempty> <minvau> <minaempty> <minaau>
This commands configures the audio and video guardbands in the triggered
record mode. If these guardbands are violated then the encoder will
start releasing older frames even though they are within the specified
buffer time. This is either to the record buffer being too small for the
specified buffer time or due to bitrate spikes.
param minvempty Minimum allowable video buffer emptiness
param minvau Minimum allowable video frames
param minaempty Minimum allowable audio buffer emptiness
param minaau Minimum allowable audio frames
triggerrec
brief Record a stream to a file when triggered
usage: triggerrec </path/to/file> [disable] [delay]
The triggerrec command encodes and stores a stream to the path specified
in the argument . Additionally, the captured input can be echoed to the
display. As in preview, the echoed video has been proprocessed which
includes crop, scale, and filtering. The default is to echo the output.
param disable Number set to non-zero to disable video echo
param delay Number of frames that are recorded prior to the trigger
record
brief Record a stream to a file
usage: record </path/to/file> [disable]
The record command encodes and stores a stream to the path specified
in the argument. Additionally, the captured input can be echoed to the
display. As in preview, the echoed video has been proprocessed which
includes crop, scale, and filtering. The default is to echo the output.
param disable Number set to non-zero to disable video echo
qccrd
brief Read codec register
usage: qccrd <length> <block> <address>
This command reads a codec register
param size Register length
param block ID Register block ID
param address Register address
qccwr
brief Write codec register
usage: qccwr <length> <block> <address> <data>
This command writes a codec register
param size Register length
param block ID Register block ID
param address Register address
param data Data to be written
estop
brief Stop the av encoder and flush out remaining bitstream from its
memory.
usage: estop
This command stops the AV encoder from encoding and puts the codec
into the FLUSHING state. The remaining bitstream is flushed and the
codec will automatically enter the IDLE state.
epause
brief Pause the av encoder
usage: epause
This command pauses the AV encoder. Audio and video data
continues to be captured with all relevant capture events
being sent to the host. The encoder maintains state until
it is resumed to the RECORD state. Note that unless there
is little or no motion during the time when the encoder is
paused it is very likely that a scene change will be detected
upon resume.
eresume
brief Resume encoding from the PAUSE state
usage: eresume
This command is used to transition the encoder back to the
RECORD state from PAUSE. Encoding continues and bitstream
events are generated.
vencstreamtype
brief Sets the encoder stream type
usage: vencstreamtype <type>
The vencstreamtype command is used to set the media container format
of the output streams. The stream types of
ves (video elementary stream) and qbox are natively handled by the
codec. The mp4 streamype is handled by host code that converts the
mp4 file to and from a qbox stream on the fly. Therefore the host
code will set the codec in qbox mode for both the qbox and mp4 types.
param type Stream type one of ves, qbox, and mp4
vdecstreamtype
brief Sets the decoder stream type
usage: vdecstreamtype <type>
The streamtype command is used to set the media container format
of the input streams. The stream types of
ves (video elementary stream) and qbox are natively handled by the
codec. The mp4 streamype is handled by host code that converts the
mp4 file to and from a qbox stream on the fly. Therefore the host
code will set the codec in qbox mode for both the qbox and mp4 types.
param type Stream type one of ves, qbox, and mp4
streamtype
brief Sets the encoder and decoder stream type
usage: streamtype <type>
The streamtype command is used to set the media container format
of the input and output streams. The stream types of
ves (video elementary stream) and qbox are natively handled by the
codec. The mp4 streamype is handled by host code that converts the
mp4 file to and from a qbox stream on the fly. Therefore the host
code will set the codec in qbox mode for both the qbox and mp4 types.
param type Stream type one of ves, qbox, and mp4
encmode
brief Set the encoder mode
usage: encode [mode]
The encmode command is used to indicate to the encoder if it is operating in
a low, medium, or high bitrate situation. Internally it selects a set of
encoding tools that are optimized for that situation. If no arguments are
given then the list of valid modes is shown.
param mode Encoder mode, one of low, medium, and high
encperf
brief Sets the encoder performance mode
usage: encperf [mode]
This command controls the performance profile of the encoder. It is specifically
used to
optimize power vs. quality, as well as indicating if full-duplex operation is
expected.
If no arguments are given then the list of valid modes is shown.
For example, the d1101 mode indicates that it is configured to encode D1
resolution video
at 101Mhz operation.
param mode Encoder performance mode
vinhea
brief Set horizontal edge-adaptive noise filter
usage: vinhea <level> <thresh0> <thresh1>
This command configures the edge adaptive noise filter. There are 5 total filters
that
are available (representing different cutoff frequencies) and two thresholds which
configure edge detection. For a given pixel an edge detector generates an 8 bit
number
which represents the amount of edge observed. The stronger the edge the more
filtering
will be applied, the weaker the edge then less filtering will be applied.
There are two thresholds that are used for edge detection which represent values
that are
used to detect gradients. There are two thresholds used, one for adjacent pixels and
one for pixels two apart. The edge detector generates two values which are
compared against
these thresholds and the filter is used accordingly. If a threshold of 255 is chosen
then
every pixel is considered an edge and no filtering is done. If a threshold of 0 is
chosen
then no pixel is considered an edge and filtering is done.
param level Filter strength (0-4) with 0 weakest, 4 strongest
param thresh0 1-pix threshold for edge detection
param thresh1 2-pix threshold
vindec
brief Sets the vertical and horizontal decimation filters in video input
usage: vindec <x factor> <y factor>
The vindec command sets the horizontal and vertical scalers in the video
input block. These scalers are applied to the input video after cropping
to the capture rectangle has been performed (which is set by the vrectcap
command). If the x or y factor is 16 or smaller then the factor is
interpreted as a ratio and the video will be scaled by that factor. For
example, if the factor is 4 then the video will be decimated by 4 (and
filtered) by 4. Note that if the resulting resolution is not a multiple
of 16 then the size will be rounded down to the nearest multiple of 16.
If the factor has a value greater than 16 then it is interpreted as a
resolution. For example, if the x factor is 320 then the video will be
scaled to a width of 320 pixels. Again, if not a multiple of 16 then
the size will be rounded down to the nearest multiple of 16.
Also note that if the interlace to progressive scaling flag (which is
set by the vinintprogscale command) is set then if the input is interlaced
and the scaling factor is 2 or larger then the bottom field will be dropped
and the resulting field will be scaled appropriately to meet the vertical
scaling factor.
param Xfactor The horizontal (width) scaling factor
param Yfactor The vertical (height) scaling factor
voutscale
brief Enable or disable scaling on the video output
usage: voutscale <s0enable> [s1enable]
This command enables or disables scaling of the video output. If scaling
is enabled then the input frames to the video display (which come from
the echoed video input during record, or the decoder during playback) will
be scaled to completely fit the video display rectangle (set using the
vrectdisp command). If scaling is disabled then the image will be displayed
centered in the display rectangle.
param s0enable Set to 1 to enable scaling, 0 to disable for screen 0
param s1enable Set to 1 to enable scaling, 0 to disable for screen 1
progsource
brief This command indicates to the encoder if the video input frames are
usage: progsource <scan>
interlaced scanned or progressive scanned. Note that this is entirely seperate
from the physical video input type as you can have progressive video content
sent on interlaced interfaces, and vice versa. The primary effect of this
command is to indicate in the stream the scan type so the display can be
properly deinterlaced during playback.
param scan Set to 1 to indicate progressive scan, set to 0 for interlace
pvsenc
brief Enable reconstructed preview of the encoded video
pvsenc
This command is used to enable the display of the reconstructed frames
during encode. The net result of this feature is that it allows the
actual video quality to be previewed while encoding. Note that this
is a debug/demo feature only and is not supported for production.
Also, 32Mbytes of CODEC memory is required to properly use this feature.
param enable Set to 1 to renable reconstructed preview, 0 to disable.
vinfieldorder
brief Indicates to the encoder if the video is top or bottom field first scan
usage: vinfieldorder <order>
This command is used to indicate to the encoder if the video source is top
or bottom field first (temporally). This setting does not affect the actual
encoding process but is used to mark the stream as top or bottom field first
for proper display on interlaced displays.
param order Set to tff for top field first, set to bff for bottom field first
vinar
brief Sets the pixel aspect ration of the video input
usage: vinar <x aspect> <y aspect> [fixed]
This command is used to set the pixel aspect ratio of the input video.
The input aspect ratio is marked in the H.264 stream as part of the VUI.
If the aspect ratio matches exactly with a standard ratio then the index
to this ratio is marked in the sream, otherwise the ratio is explicitly
stored.
The aspect ratio will be changed in the presence of scaling through the
vindec command. However, the aspect ratio can be made fixed through
the optional fixed parameter. The default is for fixed aspect to be
disabled.
param Xaspect Aspect of the pixel width
param Yaspect Aspect of the pixel height
param fixed Set to 1 if the aspect ratio is fixed, zero otherwise
vinintprogscale
brief Enable vertical 2x scaling of interlace material by dropping the bottom field
usage: vinintprogscale <enable>
vencframeticks
brief Override duration of each video frame coming from the encoder
usage: vencframeticks <ticks>
This command sets the minimum frame time of each coded frame output by
the encoder. Normally this command is not used except in conjunction
with inverse telecine where the desired frame time is based on 24fps
instead of 29.97fps.
param ticks Number of ticks per output frame
vinoutframeticks
brief Sets the frame time of each encoded video frame output by the encoder
usage: vinoutframeticks <ticks>
This command is used to control the resulting frame rate from the video encoder.
(Note that it is also possible to reduce the frame rate of the stream at the vieo
input).
If the number of ticks is different from the number of ticks per input frame (3003
for NTSC, 3600 for PAL) then the encoder will adjust the frame rate by dropping
or repeating frames as necessary. Note that the resulting rate can be arbitrary
by choosing the appropriate number of ticks per output frame.
Note that when the encoder drops or repeats frames to achieve the desired frame
rate at its output, it will also adjust the timestamps of the captured frames
such that each frame is seperated by the number of ticks specified by this
command.
param ticks Number of ticks per frame output by the encoder (90Khz clock)
vintf
brief Configure temporal filter
usage: vintf <filter> <luma attenuation> <chroma attenuation>
This command configures the video input's noise reducing temporal filter. The
filter works by averaging colocated pixels over time with the averaging time
constant reduced by the presence of motion. The first parameter is the filter
strength with 0 being off, and 3 being strongest. The second and the third
constants attenuate the filter's response with 0 being no attenuation and
7 being the highest.
param filter Number 0-3 indicating filter strength
param lumaattenuation Number 0-7 indicating luma attenuation
param chromaattenuation Number 0-7 indicating chroma attenuation
vincontrast
brief Set video input constrast
usage: vincontrast <contrast>
This command is used to enhance or reduce the contrast of the video input
by setting the gamma correction LUT using the vgammalut command. The
contrast is input as percentage where 0 is no change, 20 is 20% increase
and -20 is 20% decrease.
param contrast Signed number indicating contrast (0 = no change)
vgammalut
brief Configure the video input gamma table
usage: vgammalut <# of entries> <index> <value> [value0] [value1] [value2]
[value3] [value4] [value5]
This command is used to set up to six of the 8-bit gamma entries in the video input
gamma correction block. The table operates as a simple 8-bit to 8-bit lookup table
where each entry is programmable. The command can set up to 6 values from
index to index+5
param entries Number of gamma entries to be set by this command
param index The starting index to be set (0-255)
param value0 Value of table at index 0
param value1 Value of table at index 1
param value2 Value of table at index 2
param value3 Value of table at index 3
param value4 Value of table at index 4
param value5 Value of table at index 5
vinhuesat
brief Sets the values in the hue/saturation multiplication matrix
usage: vinhueset <Ka> <Kb> <Kc> <Kd>
This command sets the entries in the 2x2 matrix used by the video input
to adjust hue and saturation. Hue and saturation are changed as
follows
(Cb' - 128) = S*cos(theta)(Cb-128) - S*sin(theta)(Cr-128)
(Cr' - 128) = S*sin(theta)(Cb-128) + S*cos(theta)(Cr-128)
This is simplified in video input to use coefficients referred
to as Ka, Kb, Kc, Kd where
(Cb' - 128) = Ka(Cb-128) + Kb(theta)(Cr-128)
(Cr' - 128) = Kc(Cb-128) + Kd(Cr-128)
The command takes as its arguments the value of S and theta and calculates
the Ka, Kb, Kc, and Kd coeffficients.
param S Saturation scaling factor in percentage (0 to 199)
param theta Hue rotation angle (-180 to 180)
voutar
brief Set the video output pixel aspect ratio
usage: voutar <x aspect> <y aspect>
This command sets the aspect ratio of the output display. The video output
scaler will use this information to apply the correct scaling of the
frames to be displayed (when scaling is enabled). Typical aspect ratios
are 8:9 for NTSC and 15:16 for PAL.
param Xaspect Aspect of each display pixel (width)
param Yaspect Aspect of each display pixel (height)
voutframeticks
brief Set the frame time of each picture for the video display
usage: voutframeticks <ticks>
This command sets the display time of each frame for the display. It is typically
set to 3003 for NTSC and 3600 for PAL but can be set arbitrarily for other output
devices The video display will drop/repeat frames and fields to match the frame
rate of the frames to be displayed to the display.
param ticks Number of ticks per video frame (90khz clock)
voutframecodedpause
brief Set the output to use progressive-style display when pausing frame coded
pictures
usage: voutframecodedpause <enable>
This command sets the display to treat frame-coded interlaced frames as if they
were progressive frames when paused or stopped, alternating between both fields
instead
of displaying only one field repeatedly.
WARNING: This can result in flicker on higher bitrate or medium motion displays.
It should be used with caution for applications which require the maximum display
resolution at the cost of some image stability.
param enable Display both fields of frame-coded frames in pause/idle
voutexternaldeint
brief Set the video output to support an external deinterlacer
usage: voutexternaldeint <enable>
This command sets the video output to display fields in matching pairs rather
than individually. Each decoded frame will be displayed one or more times,
with the top and bottom fields of the display showing the top and bottom fields
of the decoded frame. This can cause flickering if viewed on a normal interlaced
display. It is intended for external deinterlacers which will combine each pair
of matching fields into one progressive frame.
param enable Enable/disable external deinterlacer support
vouttopfieldonly
brief Set the video output forcibly deinterlace in playback and/or trickplay
usage: vouttopfieldonly <slow> <fast> <force all>
This command sets the video output to display top fields only during slow and/or
fast trick play on interlaced material. This is useful to avoid the appearance
of jerky or bouncing content, primarily text, on some sequences that have many
sharp edges. Top field only is very useful for slow motion on text. Scan normally
results in top field only playback for most content, but this API can ensure top
field only playback on extreme content such as very low framerate streams.
Top field only can also be forced for all displayed frames.
param slow Enable/disable top field only for slow playback
param fast Enable/disable top field only for fast playback
param force all Enable/disable top field only for all frames
vinstandard
brief set the video input standard
usage: vinstandard <standard>
This command allows the video input standard to be set to either NTSC or
PAL. This command controls video timing only, not resolution. Resolution
is set through the vrectcap command which sets the capture rectangle.
param standard Video standard, either ntsc or pal
voutstandard
brief set the video input standard
usage: vinstandard <standard>
This command allows the video output standard to be set to either NTSC or
PAL. This command controls video timing only, not resolution. Resolution
is set through the vrectdisp command which sets the display rectangle.
param standard Video standard, either ntsc or pal
vinframerate
brief Sets the frame time of the video input
usage: vinframerate <ticks>
This command sets the native number of ticks per frame in the video input. The
video
input will drop and repeat frames to match this rate and ensure that frames
delivered
to the encoder are seperated by exactly this number of ticks. This is typically
3003 for NTSC and 3600 for PAL.
param ticks Number of ticks per video input frame.
vrectcap
brief Sets the capture rectangle for the video input
usage: vrectcap <width> <height> <x offset] [y offset]
This command is used to set the capture rectangle of the video input
relative to the start of active video. The width and height of the
rectangle, as well as optionally an horizontal and vertical offset
can be specified. This rectangle may result in cropping of the
video input.
param width Width of the capture rectangle
param height Height of the capture recangle
param Xoffset Horizontal offset of capture rectangle
param YOffset Vertical offset of the capture rectangle
vrectdisp
brief Sets the capture rectangle for the video display
usage: vrectdisp <width> <height> [x offset] [y offset] [screen]
This command is used to set the display rectangle of the video output
relative to the start of active video. The width and height of the
rectangle, as well as optionally an horizontal and vertical offset
can be specified. When scaling is enabled, it scales the output
frames to the dimensions of the display rectangle while respecting
the pixel aspect ratios of both.
Note that scaling and cropping can be applied to either screen 0
or screen 1 which is useful in PIP applications.
param width Width of the display rectangle
param height Height of the display recangle
param Xoffset Horizontal offset of display rectangle
param YOffset Vertical offset of the display rectangle
param screen Screen to control
voutzoom
brief Zoom the video display
usage: voutzoom <factor> <x offset> <y offset>
This command zooms the video display onto an smaller area of the display with
the same aspect ratio. The zoom factor is 1-255 where 255 is no zoom at all
and 1 is maximum.
param factor Zoom factor out of 255
param Xoffset Horizontal offset of rectangle which is being zoomed
param Yoffset Vertical offset of rectangle which is being zoomed
vdecframerate
brief Set the default display rate during playback
usage: vdecframerate <ticks> [override]
This command is used to set the default frame time during playback in the case that
there is no video timing information present. Typically video timing information is
contained in either a
media container such as MP4 or QBOX, or in SEI picture timing messages
embedded in the AVC stream.
Additionally, the timing in the stream can be overridden by this timing.
param ticks Default time of each decoded frame
param override Set to 1 if stream timing is to be overridden
vdecprog
brief Set the default scan type of a decoded stream
usage: vdecpog <prog> [override]
This command is used to set the default scan type (interlace or progressive) for a
decoded stream in the case that there are no SEI messages embedded in the stream
that indicate the scan type. Additionally, the scan type can be overridden by
this command.
param prog Flag indicating that stream is progressive if 1, interlace if 0
param override Flag indicating that stream's scan type is to be overridden if set to 1
vdecdisableoutput
brief Disable video output from the decoder
usage: vdecdisableoutput <enable>
This command is used to disable video output from the decoder. Decoding is
still done and all events are generated as expected except for display
and display related events.
param enable Flag set to 1 to disable video output from the decoder
vbitrate
brief Sets the target bitrate of the video encoder
usage: vbitrate <rate>
This command sets the target bitrate of the video encoder. The bitrate
is set in bits per second. The rate control algorithm uses this input
to control the encoding process per video frame.
param rate Bitrate in bits per second
aenccbr
brief Sets CBR mode in the audio encoder
usage: aenccbr <0|1>
This command enables and disables constant bitrate mode in the audio encoder.
abitrate
brief Sets the target bitrate of the audio encoder
usage: abitrate <rate>
This command sets the target bitrate of the audio encoder. The bitrate
is set in bits per second. The rate control algorithm uses this input
to control the encoding process per audio frame.
param rate Bitrate in bits per second
vfieldcoding
brief Set the picture coding type
usage: vfieldcoding <type>
This command sets the picture coding type used by the video encoder.
The coding type can be either frame, field, or adaptive field/frame (aff).
param type Picture coding type (field, frame, aff)
vgopsize
brief Sets the GOP size
usage: vgopsize <size>
This command is used to set the GOP size used by the video encoder. A typical
GOP size is 15 when used for storage applications of moderate bitrate with
reverse trick play. Larger GOP sizes such as 60 or 300 is used in lower bitrate
applications with no reverse playback requirements. Additionally, using a GOP
size of 1 is an all I-frame stream, a GOP size of 0 is an infinite GOP with
only one I-frame at the start.
vdeblock
brief Set the strength of the deblocking filter
usage: vdeblock <enable> <alpha> <beta>
This command is used to enable, and set the strength of the deblocking filter.
The deblocking filter alpha and beta coefficients can be set from -5 to 5.
param enable Set to 1 to enable the filter, 0 to disable
param alpha Alpha deblocking filter coefficient -5 to 5
param beta Beta deblocking filter coefficient -5 to 5
vnumslices
brief Set the number of slices per frame
usage: vnumslices <slices>
This command sets the number of slices per video frame. Note that field pictures
automatically use at least 2 slices, one per field. At this time, the number of
slices must be divisible into the number of macroblock rows in the picture (for
example, in NTSC that is 1, 2, 3, 5, 6, 10, 15, 30)
param slices Number of slices per picture
vseipt
brief Enable SEI picture timing messages
usage: vseipt <enable>
This command is used to enable SEI picture timing messages in the AVC stream.
These messages store timestamp information but are known to break some
decoders such as Quicktime.
param enable Set to 1 to store SEI picture timing messages, 0 to disable
vseipanscanrect
brief Enable SEI pan scan rect messages
usage: vseipanscanrect <enable>
This command is used to enable SEI pan scan rect messages in the AVC stream.
These messages have default content which sets the pan and scan rectangle to
fullscreen.
One message is sent with every IDR picture. These messages only need to be
enabled for compatibility with decoders which specifically expect pan and scan rect
messages to be present in the bitstream.
param enable Set to 1 to store SEI pan scan rect messages, 0 to disable
vseienccfg
brief Enable SEI encoder configuration messages
usage: vseienccfg <enable>
This command is used to enable SEI encoder configuration messages in the AVC
stream. These messages store configuration information.
param enable Set to 1 to store SEI picture timing messages, 0 to disable
vseircstats
brief Enable SEI encoder rate control messages
usage: vseircstats <enable>
This command is used to enable SEI encoder rate control messages in the AVC
stream. These messages store rate control information.
param enable Set to 1 to store SEI picture timing messages, 0 to disable
vvuitiming
brief Enable generation of VUI timing and set the units in tick and fixed frame rate
fields
usage: vvuitiming <enable> <units> <fixed>
This command sets the units in tick and fixed frame rateflags in the VUI timing
information
param enable Set to 1 to include VUI timing information
param ticks Sets number of units in tick
param fixed Sets fixed frame rate flag
vspslevel
brief Sets the SPS Level in the bitstream
usage: vspslevel <level>
This command forces the SPS level in the AVC bitstream. For example, 21 for 2.1,
30 for 3.0
param level SPS level
vspsperidr
brief Enable one SPS (sequence) per IDR frame mode
usage: vspsperidr <enable>
This command forces a new sequence and associated SPS to be generated for
every IDR picture. This allows decode from the middle of a stream, without
sending a previously cached SPS from the beginning of the stream.
param enable Enable one SPS per IDR
vaudelimiters
brief Enable AU delimiter NALUs for every picture
usage: vaudelimiters <enable>
This command enables AU delimiter NALUs before every picture. These are
marker NALUs generated for convenience before all other NALUs associated with
a picture.
param enable Enable AU delimiter to mark the NALUs associated with a new
picture.
vnalubytealign
brief Enable byte alignment for NALUs within an AVC stream
usage: vnalubytealign [0|2|4]
This command enables NALUs within an AVC stream to be aligned on 2 or 4 byte
boundaries (set to 0 to disable), within QBoxes or in an elementary stream. Zero
padding is used
at the end of each NALU to ensure that the start of the next NALU is aligned.
param alignment Byte alignment for NALUs (0 to disable).
vsc
brief Enables scene change detection
usage: vsc <enable> <I-slice>
This command enables scene change detection. Scene change is also controlled by
the vscnewgop command. There are 4 possible configurations for scene change.
The configurations are as follows:
- nothing - set by vsc 0
- insert I-frame but do not start a new GOP - set by vsc 1 0, vscnewgop 0
- Force P-frame to contain only I-slice - set with vsc 1 1, vscnewgop 0
- insert I-frame and start new GIO - set wth vsc 1 0, vscnewgop 1
param enable Enables scene change detection
param Islice Forces scene detection to still send a P picture but force I-slice
vscnewgop
brief Enables new GOP start on scene change
usage: vscnewgop <enable>
This command forces the scene change detection algorithm to start a new GOP
when a scene change is detected. Scene change is also controlled by the vsc
command
which can either insert I-frames or I-slices on scene change.
The configurations are as follows:
- nothing - set by vsc 0
- insert I-frame but do not start a new GOP - set by vsc 1 0, vscnewgop 0
- Force P-frame to contain only I-slice - set with vsc 1 1, vscnewgop 0
- insert I-frame and start new GIO - set wth vsc 1 0, vscnewgop 1
param enable Enables new GOP on scene change
vintelecine
brief Enables telecine detection in the video input
usage: vintelecine <enable>
This command enables telecine detection in the video input. No action is
taken due to detection being enabled, it merely signals its presence
to the encoder. The encoder's actions are configured using the
vtelecine command.
param enable Enables telecine detection on video input
vtelecine
brief Set inverse telecine mode
usage: vtelecine <enable> <frame drop>
This command configures the encoder to perform specific operations on
streams which 3:2 pulldown (telecine) has been detected. Note that
telecine detection has to be enabled in the video input for the decoder
to take action (via the tintelecine command). There are two possible
operations the encoder can perform. The first is to code the duplicate
field using SKIP macroblocks only. The second is to drop the field.
Note that inverse telecine is only supported on streams which have
had their bottom field dropped and are being encoded as progressive
frames (enabled via vinoutprogscale and vindec with vertical decimation
of at least 2).
param enable Enables inverse telecine in the encoder
param framedrop Forces duplicate fields instead of coded as SKIP
vforcegop
brief Force the encoder to start a new GOP immediately
usage: vforcegop
This command forces the encoder to start a new GOP as soon as the command is
received.
It is typically used in streaming applications where the decoder requests a new
GOP due to network packet loss
vrcbuffer
brief Set buffer-based video rate control parameters
usage: vrcbuffer <enable> <buffersize> <channel rate> <initial delay> <low delay
mode> <cbr> <max snr>
This command enables buffer-based rate control which is suitable for streaming
applications.
Buffer-based rate control uses a leaky bucket model to control bitrate. The model
is parametrized by the target bitrate (set by vbitrate), the buffer size, the channel
rate (the drain rate of the
bucket), enabling low-delay operation, constant bitrate application, and a maximum
SNR. At this time constant bitrate mode is not supported. Low-delay operation is
recommended. In low-delay
operation, if the buffer model underflows, the encoder will drop frames to catch up.
param enable Set to 1 to enable buffer based rate control
param buffersize Size of the decoder buffer
param channelrate Sustained transfer rate of the transmission channel
param initialdelay Initial delay required of decoder to prevent underflow
param lowdelay Flag set to 1 to enable low-delay operation
param cbr Flag set to 1 to enable CBR operation (only 0 supported)
vrcsize
brief Sets storage based rate control
usage: vrcsize <enable> <deviation> <allowviolation>
This command is used to enable size-based rate control. Size-based rate control
is used in storage applications where the size of the encoded stream must be
managed due to finite available storage. The rate control algorithm attempts to
keep the file
size to its nominal value (equal to bitrate multiplied by time) plus/minus a specified
deviation in bits. Frames are not dropped at any time due to rate control. Typical
values for deviation are 1 to 8mbits.
param enable Flag set to 1 to enable size-based rate control
param deviation Deviation (in bits) from the nominal file size
param allowviolation Allows rate control to permanently save/spend bits when the
QP is min/max capped
vrcafr
brief Enable adaptive video frame rate
usage: vrcafr <enable> <min qp> <max qp> <max frame rate> <min frame rate>
This command enables adaptive frame rate operation in the video encoder.
Whereas the normal rate control algorithm reduces quality per picture to
hit a target bitrate, adaptive frame rate will instead reduce frame rate
to reduce bitrate. The algorithm can be used in conjunction with both
storage and buffer based rate control. The algorithm takes a max QP where
if the QP were to be raised above this level the encoder will instead
reduce frame rate. The encoder will continue to reduce frame rate until
it hits a minimum frame rate after which it will start to raise the QP
again. The algorithm also takes a min QP value where the encoder will
restart raising QP again. Typically the min QP is set to 2 lower than
the maximum to implement a type of hystersis and stablize the frame
rate.
param enable Flag set to 1 to enable adaptive frame rate, 0 to disable
param minqp Minimum QP where algorithm starts increasing QP to hit bitrate
param maxqp Maximum QP where algorithm starts decreasing frame rate to hit
bitrate
param maxrate Maximum framerate set by the algorithm
param minrate Minimum framerate where the algorithm starts to raise QP
vrcqprange
brief Set rate control QP range
usage: vrcqprange <min qp> <max qp>
The rate control can optionally have its quantizer (QP) capped at both
a minimum or a maximum value. Normally the rate control will manipulate
the quantizer to achieve the target bitrate but if it is capped with either
a minimum or a maximum the bitrate will increase or decrease to the
point where the allowed deviation will be violated. This feature is
typically used in situations where there will be many easy scenes to
encode and the user wants to save bits. For instance, the minimum
quantizer can be set to a value that produces good quality on easy scenes
at a low bitrate. Note that the quantizers selected must be tuned to the
target bitrate.
param minqp Minimum picture QP to allow the rate control to use
param maxqp Maximum picture QP to allow the rate control to use
avcalign
brief Forces 4-byte alignment of the AVC stream
usage: avcalign <enable>
This command forces 4-byte alignment of NAL units by stuffing a private
SEI message after the slice NALU.
param enable Flag to enable AVC NALU alignment
llatency
brief Enable low-latency operation
usage: llatency <enable>
This command enables low-latency mode where individual slices are sent
to the host instead of a complete frame's worth of data.
audioenc
brief Selects the audio encoder
usage: audioenc <encoder>
This command is used to select between the AAC encoder or the MPEG1/2 Layer 2
encoder.
param encoder Set the encoder type as aac or qma
audiodec
brief Selects the audio encoder
usage: audiodec <encoder>
This command is used to select between the AAC encoder or the MPEG1/2 Layer 2
decoder.
param encoder Set the decoder type as aac or mp2 (aka qma)
audiooutput
brief Set audio output configuration
usage: audiooutput <channels> <sample rate> <sample size>
This command sets the configuration of the audio output unit,
including the number of channels, the sampling rate, and
the sample size.
param channels Number of channels (2 or 1)
param rate Sampling rate (16000, 24000, 32000, 44100, 48000)
param size Sample size (only 16 at this time)
audioinput
brief Set the audio input configuration
usage: audioinput <channel routing>
This command sets the channel routing of the audio input. The
channels can either be mono (left channel), mono (right channel),
stereo, or swapped stereo.
param routing Set channel routing
pipaud
brief Select audio source
usage: pipaud <source>
This command is used to control the active audio source during PIP operation.
The source can either be the main window, the pip window, the encoder,
the decoder.
param source Sets the audio input. Main sets the main screen, pip sets the PIP
screen. Options are \"main\", \"pip\", \"enc\", \"dec\", \"none\".
pip
brief Select automatic or manual main and PIP display sources
usage: pip <enable> <main> <pip>
This command controls the main and PIP display screens. When enable is 0,
the decoder or preview uses the main screen depending on which is running.
Full duplex mode thus requires encode without preview.
When PIP control is enabled, this API specifies whether the encoder, decoder,
or nothing is used as the source for each screen. Main is screen 0 in the
video APIs (such as scaling), PIP is screen 1. When nothing is displayed to
a screen, the screen is disabled.
Only the main stream plays audio. Therefore, full duplex with audio and with
decode and preview can be run, but only the main screen will actually play back
the audio.
pip can be enabled, disabled, or switched in any state. This means that the
encoder and decoder can be swapped between main and PIP, switching the audio
as well.
param enable Enables manual PIP control. Main sets the main screen, pip sets the
PIP screen. Options are \"enc\", \"dec\", \"none\".
avselect
brief Select audio, video, or audio/video encoding
usage: avselect <mode>
This command controls the encoder's encoding of audio and video. It can be
configured to encode video only, audio only, or audio and video.
param mode Sets the encoding mode. av for audio/video, v for video-only, a for
audio-only
prevavselect
brief Selects audio/video preview mode
usage: prevavselect <mode>
This command is used to control the preview mode. When encoding both the
video and audio, or video or audio can be echoed. The mode can be av for both
audio and video, v for video only, and a for audio only.
param mode Preview mode, either av, v, or a
inputselect
brief Start video and/or audio input units
usage: inputselect <mode>
This command is used to start the video and audio input units. If
there is no input present then the input unit should not be started as
the firmware will attempt to synchronize the inputs. The input mode
can be av for audio/video, v for video, or a for audio.
replay
brief Executes commands from a logfile
usage: replay <logfile>
param logfile Logfile to replay
avsynch
brief Enable audio/video synchronization
usage: avsync <enable>
This command is used to enable av synch on playback
param enable Flag set to 1 to enable audio/video synch, 0 to disable
vinstcoffset
brief Set encoder STC offset between audio and video streams
usage: vinstcoffset <ticks>
This command sets an audio/video offset in the encoder. It is typically
used if there is a skew between the input streams to the codec.
param ticks STC offset (90Khz clock)
voutstcoffset
brief Set display STC offset between audio and video streams
usage: voutstcoffset <ticks>
This command sets an audio/video offset in the display. It is typically
used if there is a skew between the input streams to external peripherals.
param ticks STC offset (90Khz clock)
dirlist
brief Lists directories on the target filesystem
usage: dirlist <path>
This command is used to list directories on the remote target.
param path Path to directory to list sub directories
filelist
brief Lists files on the target filesystem
usage: filelist <path>
This command is used to list files on the remote target.
param path Path to directory to list files
osdalpha
brief Set OSD display alpha
usage: osdfill <enable> [alpha]
This command sets the global alpha of the OSD plane.
param enable Enables alpha-blending
param alpha 0-255 alpha blend with 255 being solid 0 being transparent
osdblit
brief Blit a bitmap onto OSD display
usage: osdbmpblit <name> <x> <y>
This commands blits a previously loaded BMP or pixel map onto the OSD display
param name Full path of previously loaded BMP
param x X coordinate (relative to OSD origin set in osdshow)
param y Y coordinate (relative to OSD origin set in osdshow)
osdloadbmp
brief Download a BMP to codec memory
usage: osdloadbmp <path> [nopalette]
This command is used to download a BMP to codec memory so
that it can be displayed as an OSD.
param path Path to the BMP to download
param nopalette If set to 1 does not download palette, just pixel data
osdloadpixmap
brief Download a raw pixel map to codec memory
usage: osdloadpixmap <path> <width> <height>
This command is used to download a raw pixel
map to codec memory
param path Path to the pixel map to download
param width Width of pixel map
param Height of pixel map
osdloadresource
brief Download binary data to the codec
usage: osdloadresource <path> <width> <height>
This command is used to download a raw pixel
map to codec memory
param path Path to the pixel map to download
param width Width of pixel map
param Height of pixel map
osdbmppalette
brief Set OSD palette based on a bmp's handle
usage: osdpalettefromhandle <name> <alpha>
This command sets a palette from a previously loaded
bmp (using the osdloadbmp command).
param handle Bitmap handle
param alpha Alpha value to set
osdpalette
brief Set OSD palette entry
usage: osdpalette <index> <red> <green> <blue> <alpha>
This command sets a palette's (0-255) RGBA triplet.
param index Palette entry 0 - 255
param red Red component 0 - 255
param green Green component 0 - 255
param blue Blue component 0 - 255
param alpha Alpha component 0 - 255 (0 is transparent)
osdgetpalette
brief Read OSD palette entry
usage: osdgetpalette <index>
This command reads a palette's (0-255) RGBA triplet.
param index Palette entry 0 - 255
osdfontsize
brief Set OSD font size
usage: osdsetfontsize [16|24|32]
This command sets the global alpha of the OSD plane.
param size Specifies the font as either 16x16, 24x24 or 32x32
osdfill
brief Fill OSD display memory rectangle with a color
usage: osdfill <color> <xtop> <ytop> <xbottom> <ybottom>
This command fills a rectangle in the OSD display memory with a specified color.
Note that color 255 is predefined to be transparent.
param color Color to store in each pixel
param xtop Top left x coordinate of rectangle
param ytop Top left y coordinate of rectangle
param xbottom Bottom right x coordinate of rectangle
param ybottom Bottom right y coordinate of rectangle
osdsize
brief Set the display area of the OSD
usage: osdsize <width> <height>
This command sets the visible area of the OSD display memory.
param width Width of the display area
osdshow
brief Show/hide OSD
usage: osdshow
This command is used to enable or disable the OSD plane. A zero
argument disables, non-zero enables. The second and third
arguments contain the x/y address where the OSD plane should be
displayed relative to the display
osdtext
brief Display string on OSD
usage: osdtext <string> <x> <y>
This command is used to display a string on the osd.
param string the string that will be displayed
param x the x location on the screen (multiple of 4)
param y the y location on the screen (multiple of 4)
vamden
brief Enable or disable motion detection
usage: vamden <en>
This command is used to enable/disable motion detection.
param en 1 to enable, 0 to disable.
vamdvis
brief Enables or diables motion detection visualization
usage: vamdvis <enable>
This command is used to enable motion detection visualization
through OSD.
param enable 1 to enable, 0 to disable
vamdreset
brief Resets all motion detection settings
usage: vamdreset
This command is used to reset all motion detection settings.
This can only be called with global motion detection disabled.
vamdroiset
brief Set the settings for a region
usage: vamdroiset <index> <en> <mot> <sen> <qboost>
This command is used to set the settings for a region of interest.
<mot> <sen> <qboost> is only needed when <en> equals 1.
This can only be called with global motion detection disabled.
param index region number [0 - 15].
param en region enable, 1 to enable, 0 to disable.
param mot amount of luma difference for a macroblock to be considered in motion
[0 - 255].
param sen percentage of macroblocks that need to be in motion for the region to be
considered in motion [0 - 10000].
param qboost boost region quality when region is in motion, 1 to enable, 0 to
disable.
vamdroiadd
brief Add a rectangle area to a region
usage: vamdroiadd <index> <x> <y> <w> <h>
This command is used to add a rectangle to a region of interest.
This can only be called with global motion detection disabled.
param index region number [0 - 15].
param x x coordinate of top left corner of rectangle.
param y y coordinate of top left corner of rectangle.
param w width of rectangle.
param h height of rectangle.
vamdroisub
brief Subtract a rectangle area from a region
usage: vamdroisub <index> <x> <y> <w> <h>
This command is used to subtract a rectangle from a region of interest.
This can only be called with global motion detection disabled.
param index region number [0 - 15].
param x x coordinate of top left corner of rectangle.
param y y coordinate of top left corner of rectangle.
param w width of rectangle.
param h height of rectangle.
trickplaycap
brief Get trick play capability of the file
usage: trickplaycap <filename>
This command is used to get the trick play capability of the file
bplay, bscan, bs ...
param filename Filename to check trick-play capable
fdcap
brief Get full-duplex capability of the file
usage: fdcap <filename>
This command is used to get the full-duplex capability of
the file
param filename Filename to check full-duplex capable
vinstrenable
brief Enable a string to be added to the input video
usage: vinstrenable <index> <enable> [rollover-high] [x] [y]
This command is used to enable the addition of one of the two
strings on the video. The strings are addressed through the
index 0 or 1 and can be enabled with a value of 1. The
rollover-high parameter is the frame count value where the
counter wraps back to the start count. The x and y coordinates
are the string position on the screen, both of which must
be a multiple of 16.
param index String index 0 or 1
param enable Enables string display (0=disable, 1=enable)
param rollover-high Value where frame number resets (0-100)
param x Horizontal position of timestamp string (multiple of 16)
param y Vertical position of timestamp string (multiple of 16)
vinstrset
brief Enable a string to be added to the input video
usage: vinstrset <index> <mode> <position> <rollover-low> <string>
This command is used to set the string that is added to the input video.
There are two strings that can be set, index 0 and index 1. Up to
20 characters can be set per command starting at any string position
for a maximum of a 24 character string. That is, a non-zero position
argument will change characters in the middle of the string.
The strings are double buffered inside the codec allowing the host
to update the strings without disturbing the display. There are three
update modes. The first mode 0 updates the string but does not change
the displayed string. An update mode of 1 forces an immediate update
and an update mode of 2 forces an update on the next rollover of the
frame counter. Additonally, the event QAVEEVVIDEOBURNINROVER is
generated when the string is updated on rollover allowing for the
host to generate the string for the next rollover.
The rollover-low value is the starting frame number for the counter.
Typically this value is always set to 0 but can be set to non-zero
to implement drop-frame timecode.
param index String index 0 or 1
param mode Update mode 0=Display not updated, 1=Update Display 2=Update
Display on rollover
param position Position within string to update
param rollover-low Start value of counter on next-rollover
param string New string to copy into codec's buffered string
vinstrcntset
brief Set the string position of the frame counter
usage: vinstrcntset <index> <enable> <position>
This command is used to set the position with the string for the
automatically incrementing frame counter. A value of 0 indicates
that the first 2 characters will be used for the frame number.
param index String index (0-1) of string to update
param enable Enables frame counting if set to 1
param position Position within string to place counter
vinstrauto
brief Enable automatic timestamping of each frame
usage: vinstrauto <framerate> <x> <y>
This command is used to enable the shell's automatic timestamping of
each video frame. The framerate can be specified as either 30, 25
or 29.97 in which case drop-frame timecode is used (where 2 frames
are not counted every minute except for minutes divisible by 10).
param framerate Enables auto timestamp at frame rate of 30, 25, or 29.97, or 0 to
disable
param x Horizontal position of timestamp string (multiple of 16)
param y Vertical position of timestamp string (multiple of 16)
vinstrfontset
brief Loads the 2bpp font used for burn in text
usage: vinstrfontset <path>
This command is used to load the 2 bpp font
that is used by the codec for burn in text.
param path Path to the font file
vdecprebuffer
brief prebuffering bitstream during decode
usage: vdecprebuffer <nFrames>
This command is used to set the initial pre-buffering of the AVC decoder, as
measured in video frames.
param nFrames Number of frames to prebuffer (minimum 1) before decoding
qboxmeta
brief Disable generation of QBOX meta data information
usage: qboxmeta <enable>
This command is used to disable the generation of qbox meta data information.
param enable Set to 1 to enable generation of meta data, 0 to disable
streamsource
brief Set stream source mode
usage: streamsource <mode>
This command is used to set the stream source to sisc push (blocking)
or pull (none-blocking) mode.
param mode: siscpush (default) or siscpull (vdecstreamtype qbox only).
vlookahead
brief Set encoder look ahead
usage: vlookahead <frames>
param frames: frame times to lookahead
dload
brief Dynamically load a shared library containing new shell commands
usage: dload <path to library>
param path: path to .so to load
vencmaskadd
brief Add a mask rectangle area to a region
usage: vencmaskadd <index> <x> <y> <w> <h>
This command is used to add a mask rectangle to a region.
param index region number [0 - 15].
param x x coordinate of top left corner of rectangle.
param y y coordinate of top left corner of rectangle.
param w width of rectangle.
param h height of rectangle.
vencmasksub
brief Subtract a mask rectangle area from a region
usage: vencmasksub <index>
This command is used to subtract a mask rectangle from a region.
param index region number [0 - 15].
vencmovealloc
brief Allocate a rectangle area to a region
usage: vencmovealloc <x1> <y1> <w> <h> <x2> <y2>
This command is used to allocate a rectangle to a region.
param x1 x1 coordinate of top left corner of rectangle.
param y1 y1 coordinate of top left corner of rectangle.
param w width of rectangle.
param h height of rectangle.
param x2 x2 the horizontal address of the destination.
param y2 y2 the vertical address of the destination.
vencmovedel
brief Delete a rectangle area from a region
usage: vencmovedel
This command is used to delete a rectangle from a region.
venczoominset
brief specify a rectangle area to a region
usage: venczoominset <w> <h>
This command is used to specify the width/height of a rectangle to a region.
param w width of rectangle.
param h height of rectangle.