Difference between revisions of "VideoRecording"

From WebOS Internals
Jump to navigation Jump to search
m
Line 2: Line 2:
  
 
(make sure FS is rw)<br>
 
(make sure FS is rw)<br>
 +
<source lang="text">
 
mount -o remount,rw /<br>
 
mount -o remount,rw /<br>
 
gst-launch camsrc ! palmvideoencoder ! filesink location=/media/internal/downloads/foo.mts<br>
 
gst-launch camsrc ! palmvideoencoder ! filesink location=/media/internal/downloads/foo.mts<br>
 
mount -o remount,ro /<br>
 
mount -o remount,ro /<br>
 
+
</source>
 
- No GUI<br>
 
- No GUI<br>
 
- No sound (need a muxer plugin? verify alsasrc works)<br>
 
- No sound (need a muxer plugin? verify alsasrc works)<br>
Line 14: Line 15:
  
 
gst-inspect (shows list of sources to pipe through, mostly decoders/demuxers)
 
gst-inspect (shows list of sources to pipe through, mostly decoders/demuxers)
 +
<source lang="text">
 +
root@castle:/var/home/ccrook# gst-inspect
 +
palmvideodecoder:  palmvideodecoder: palmvideodecoder
 +
palmaudiodecoder:  palmaudiodecoder: palmaudiodecoder
 +
wavparse:  wavparse: WAV audio demuxer
 +
wavenc:  wavenc: WAV audio muxer
 +
udp:  udpsink: UDP packet sender
 +
udp:  multiudpsink: UDP packet sender
 +
udp:  dynudpsink: UDP packet sender
 +
udp:  udpsrc: UDP packet receiver
 +
typefindfunctions: application/x-id3v2: mp3, mp2, mp1, mpga, ogg, flac, tta
 +
typefindfunctions: application/x-id3v1: mp3, mp2, mp1, mpga, ogg, flac, tta
 +
typefindfunctions: audio/mpeg: mp3, mp2, mp1, mpga
 +
typefindfunctions: video/mpeg4: m4v
 +
typefindfunctions: audio/x-m4a: m4a
 +
typefindfunctions: application/x-3gp: 3gp
 +
typefindfunctions: video/quicktime: mov
 +
typefindfunctions: audio/x-wav: wav
 +
typefindfunctions: adts_mpeg_stream: aac
 +
typefindfunctions: audio/x-amr-nb-sh: amr
 +
typefindfunctions: audio/x-amr-wb-sh: amr
 +
rtsp:  rtspsrc: RTSP packet receiver
 +
rtsp:  rtpdec: RTP Decoder
 +
rtsp:  rtspgoogle: Google RTSP Extension
 +
gstrtpmanager:  gstrtpbin: RTP Bin
 +
gstrtpmanager:  gstrtpclient: RTP Client
 +
gstrtpmanager:  gstrtpjitterbuffer: RTP packet jitter-buffer
 +
gstrtpmanager:  gstrtpptdemux: RTP Demux
 +
gstrtpmanager:  gstrtpsession: RTP Session
 +
gstrtpmanager:  gstrtpssrcdemux: RTP SSRC Demux
 +
rtp:  rtpdepay: RTP depayloader
 +
rtp:  rtpac3depay: RTP packet depayloader
 +
rtp:  rtpdvdepay: RTP DV Depayloader
 +
rtp:  rtpdvpay: RTP DV Payloader
 +
rtp:  rtpilbcpay: RTP Payloader for iLBC Audio
 +
rtp:  rtpilbcdepay: RTP iLBC packet depayloader
 +
rtp:  rtpg726depay: RTP packet depayloader
 +
rtp:  rtpg726pay: RTP packet payloader
 +
rtp:  rtpg729depay: RTP packet depayloader
 +
rtp:  rtpg729pay: RTP Payloader for G729 Audio
 +
rtp:  rtpgsmdepay: RTP packet depayloader
 +
rtp:  rtpgsmpay: RTP GSM audio payloader
 +
rtp:  rtpamrdepay: RTP packet depayloader
 +
rtp:  rtpamrpay: RTP packet payloader
 +
rtp:  rtppcmadepay: RTP packet depayloader
 +
rtp:  rtppcmudepay: RTP packet depayloader
 +
rtp:  rtppcmupay: RTP packet payloader
 +
rtp:  rtppcmapay: RTP packet payloader
 +
rtp:  rtpmpadepay: RTP packet depayloader
 +
rtp:  rtpmpapay: RTP packet payloader
 +
rtp:  rtpmpvdepay: RTP packet depayloader
 +
rtp:  rtpmpvpay: RTP MPEG2 ES video payloader
 +
rtp:  rtph263ppay: RTP packet payloader
 +
rtp:  rtph263pdepay: RTP packet depayloader
 +
rtp:  rtph263depay: RTP H263 packet depayloader
 +
rtp:  rtph263pay: RTP packet payloader
 +
rtp:  rtph264depay: RTP packet depayloader
 +
rtp:  rtph264pay: RTP packet payloader
 +
rtp:  rtpL16pay: RTP packet payloader
 +
rtp:  rtpL16depay: RTP packet depayloader
 +
rtp:  asteriskh263: RTP packet parser
 +
rtp:  rtpmp1sdepay: RTP packet depayloader
 +
rtp:  rtpmp2tdepay: RTP packet depayloader
 +
rtp:  rtpmp2tpay: RTP MP2T audio payloader
 +
rtp:  rtpmp4vpay: RTP MPEG-4 Video packet payloader
 +
rtp:  rtpmp4vdepay: RTP packet depayloader
 +
rtp:  rtpmp4apay: RTP packet payloader
 +
rtp:  rtpmp4adepay: RTP packet parser
 +
rtp:  rtpmp4gdepay: RTP packet depayloader
 +
rtp:  rtpmp4gpay: RTP packet payloader
 +
rtp:  rtpspeexpay: RTP packet payloader
 +
rtp:  rtpspeexdepay: RTP packet depayloader
 +
rtp:  rtpsv3vdepay: RTP packet depayloader
 +
rtp:  rtptheoradepay: RTP packet depayloader
 +
rtp:  rtptheorapay: RTP packet depayloader
 +
rtp:  rtpvorbisdepay: RTP packet depayloader
 +
rtp:  rtpvorbispay: RTP packet depayloader
 +
rtp:  rtpvrawdepay: RTP packet depayloader
 +
rtp:  rtpvrawpay: RTP packet payloader
 +
queue2:  queue2: Queue
 +
quicktime:  qtdemux: QuickTime demuxer
 +
quicktime:  rtpxqtdepay: RTP packet depayloader
 +
playback:  playbin: Player Bin
 +
playback:  playbin2: Player Bin 2
 +
mulaw:  mulawenc: Mu Law audio encoder
 +
mulaw:  mulawdec: Mu Law audio decoder
 +
mobirtspsrc:  mobirtspsrc: MobiRtspSrc
 +
ffmpeg:  ffdec_alac: FFMPEG ALAC (Apple Lossless Audio Codec) decoder
 +
ffmpeg:  ffdec_qcelp: FFMPEG QCELP / PureVoice decoder
 +
ffmpeg:  ffdeinterlace: FFMPEG Deinterlace element
 +
ffmpeg:  ffaudioresample: FFMPEG Audio resampling element
 +
uridecodebin:  decodebin2: Decoder Bin
 +
uridecodebin:  uridecodebin: URI Decoder
 +
decodebin:  decodebin: Decoder Bin
 +
coreindexers:  memindex: A index that stores entries in memory
 +
coreelements:  capsfilter: CapsFilter
 +
coreelements:  fakesrc: Fake Source
 +
coreelements:  fakesink: Fake Sink
 +
coreelements:  fdsrc: Filedescriptor Source
 +
coreelements:  fdsink: Filedescriptor Sink
 +
coreelements:  filesrc: File Source
 +
coreelements:  identity: Identity
 +
coreelements:  queue: Queue
 +
coreelements:  filesink: File Sink
 +
coreelements:  tee: Tee pipe fitting
 +
coreelements:  typefind: TypeFind
 +
coreelements:  multiqueue: MultiQueue
 +
video4linux2:  camsrc: Video (video4linux2/raw) Source
 +
avi:  avidemux: Avi demuxer
 +
avi:  avimux: Avi muxer
 +
avi:  avisubtitle: Avi subtitle parser
 +
audiotestsrc:  audiotestsrc: Audio test source
 +
audiorate:  audiorate: Audio rate adjuster
 +
audioconvert:  audioconvert: Audio converter
 +
alsa:  alsamixer: Alsa mixer
 +
alsa:  alsasrc: Audio source (ALSA)
 +
alsa:  alsasink: Audio sink (ALSA)
 +
alaw:  alawenc: A Law audio encoder
 +
alaw:  alawdec: A Law audio decoder
 +
palmvideosink:  palmvideosink: palmvideosink
 +
palmvideoencoder:  palmvideoencoder: palmvideoencoder
 +
palmqcelpdemux:  palmqcelpdemux: palmqcelpdemux
 +
palmqcelpdemux: audio/x-gst-fourcc-sqcp: no extensions
 +
palmmp3demux:  palmmp3demux: palmmp3demux
 +
palmjpegencfilesink:  palmjpegencfilesink: palmjpegencfilesink
 +
palmhttpsrc:  palmhttpsrc: Palm HTTP Source Element
 +
palmamrdemux:  palmamrdemux: palmamrdemux
 +
adpcmdecoder:  palmadpcmdecoder: ADPCM Decoder
 +
palmaacdemux:  palmaacdemux: palmaacdemux
 +
staticelements:  bin: Generic bin
 +
staticelements:  pipeline: Pipeline object
 +
 +
Total count: 36 plugins, 129 features
 +
</source>
  
 
Additional reference from XO Laptop site:   
 
Additional reference from XO Laptop site:   

Revision as of 17:49, 6 August 2009

At your rooted command line:

(make sure FS is rw)
<source lang="text"> mount -o remount,rw /
gst-launch camsrc ! palmvideoencoder ! filesink location=/media/internal/downloads/foo.mts
mount -o remount,ro /
</source> - No GUI
- No sound (need a muxer plugin? verify alsasrc works)
Frame rate seemed pretty decent too.
Video is H.264 at 480x320.

other useful gstreamer commands:

gst-inspect (shows list of sources to pipe through, mostly decoders/demuxers) <source lang="text"> root@castle:/var/home/ccrook# gst-inspect palmvideodecoder: palmvideodecoder: palmvideodecoder palmaudiodecoder: palmaudiodecoder: palmaudiodecoder wavparse: wavparse: WAV audio demuxer wavenc: wavenc: WAV audio muxer udp: udpsink: UDP packet sender udp: multiudpsink: UDP packet sender udp: dynudpsink: UDP packet sender udp: udpsrc: UDP packet receiver typefindfunctions: application/x-id3v2: mp3, mp2, mp1, mpga, ogg, flac, tta typefindfunctions: application/x-id3v1: mp3, mp2, mp1, mpga, ogg, flac, tta typefindfunctions: audio/mpeg: mp3, mp2, mp1, mpga typefindfunctions: video/mpeg4: m4v typefindfunctions: audio/x-m4a: m4a typefindfunctions: application/x-3gp: 3gp typefindfunctions: video/quicktime: mov typefindfunctions: audio/x-wav: wav typefindfunctions: adts_mpeg_stream: aac typefindfunctions: audio/x-amr-nb-sh: amr typefindfunctions: audio/x-amr-wb-sh: amr rtsp: rtspsrc: RTSP packet receiver rtsp: rtpdec: RTP Decoder rtsp: rtspgoogle: Google RTSP Extension gstrtpmanager: gstrtpbin: RTP Bin gstrtpmanager: gstrtpclient: RTP Client gstrtpmanager: gstrtpjitterbuffer: RTP packet jitter-buffer gstrtpmanager: gstrtpptdemux: RTP Demux gstrtpmanager: gstrtpsession: RTP Session gstrtpmanager: gstrtpssrcdemux: RTP SSRC Demux rtp: rtpdepay: RTP depayloader rtp: rtpac3depay: RTP packet depayloader rtp: rtpdvdepay: RTP DV Depayloader rtp: rtpdvpay: RTP DV Payloader rtp: rtpilbcpay: RTP Payloader for iLBC Audio rtp: rtpilbcdepay: RTP iLBC packet depayloader rtp: rtpg726depay: RTP packet depayloader rtp: rtpg726pay: RTP packet payloader rtp: rtpg729depay: RTP packet depayloader rtp: rtpg729pay: RTP Payloader for G729 Audio rtp: rtpgsmdepay: RTP packet depayloader rtp: rtpgsmpay: RTP GSM audio payloader rtp: rtpamrdepay: RTP packet depayloader rtp: rtpamrpay: RTP packet payloader rtp: rtppcmadepay: RTP packet depayloader rtp: rtppcmudepay: RTP packet depayloader rtp: rtppcmupay: RTP packet payloader rtp: rtppcmapay: RTP packet payloader rtp: rtpmpadepay: RTP packet depayloader rtp: rtpmpapay: RTP packet payloader rtp: rtpmpvdepay: RTP packet depayloader rtp: rtpmpvpay: RTP MPEG2 ES video payloader rtp: rtph263ppay: RTP packet payloader rtp: rtph263pdepay: RTP packet depayloader rtp: rtph263depay: RTP H263 packet depayloader rtp: rtph263pay: RTP packet payloader rtp: rtph264depay: RTP packet depayloader rtp: rtph264pay: RTP packet payloader rtp: rtpL16pay: RTP packet payloader rtp: rtpL16depay: RTP packet depayloader rtp: asteriskh263: RTP packet parser rtp: rtpmp1sdepay: RTP packet depayloader rtp: rtpmp2tdepay: RTP packet depayloader rtp: rtpmp2tpay: RTP MP2T audio payloader rtp: rtpmp4vpay: RTP MPEG-4 Video packet payloader rtp: rtpmp4vdepay: RTP packet depayloader rtp: rtpmp4apay: RTP packet payloader rtp: rtpmp4adepay: RTP packet parser rtp: rtpmp4gdepay: RTP packet depayloader rtp: rtpmp4gpay: RTP packet payloader rtp: rtpspeexpay: RTP packet payloader rtp: rtpspeexdepay: RTP packet depayloader rtp: rtpsv3vdepay: RTP packet depayloader rtp: rtptheoradepay: RTP packet depayloader rtp: rtptheorapay: RTP packet depayloader rtp: rtpvorbisdepay: RTP packet depayloader rtp: rtpvorbispay: RTP packet depayloader rtp: rtpvrawdepay: RTP packet depayloader rtp: rtpvrawpay: RTP packet payloader queue2: queue2: Queue quicktime: qtdemux: QuickTime demuxer quicktime: rtpxqtdepay: RTP packet depayloader playback: playbin: Player Bin playback: playbin2: Player Bin 2 mulaw: mulawenc: Mu Law audio encoder mulaw: mulawdec: Mu Law audio decoder mobirtspsrc: mobirtspsrc: MobiRtspSrc ffmpeg: ffdec_alac: FFMPEG ALAC (Apple Lossless Audio Codec) decoder ffmpeg: ffdec_qcelp: FFMPEG QCELP / PureVoice decoder ffmpeg: ffdeinterlace: FFMPEG Deinterlace element ffmpeg: ffaudioresample: FFMPEG Audio resampling element uridecodebin: decodebin2: Decoder Bin uridecodebin: uridecodebin: URI Decoder decodebin: decodebin: Decoder Bin coreindexers: memindex: A index that stores entries in memory coreelements: capsfilter: CapsFilter coreelements: fakesrc: Fake Source coreelements: fakesink: Fake Sink coreelements: fdsrc: Filedescriptor Source coreelements: fdsink: Filedescriptor Sink coreelements: filesrc: File Source coreelements: identity: Identity coreelements: queue: Queue coreelements: filesink: File Sink coreelements: tee: Tee pipe fitting coreelements: typefind: TypeFind coreelements: multiqueue: MultiQueue video4linux2: camsrc: Video (video4linux2/raw) Source avi: avidemux: Avi demuxer avi: avimux: Avi muxer avi: avisubtitle: Avi subtitle parser audiotestsrc: audiotestsrc: Audio test source audiorate: audiorate: Audio rate adjuster audioconvert: audioconvert: Audio converter alsa: alsamixer: Alsa mixer alsa: alsasrc: Audio source (ALSA) alsa: alsasink: Audio sink (ALSA) alaw: alawenc: A Law audio encoder alaw: alawdec: A Law audio decoder palmvideosink: palmvideosink: palmvideosink palmvideoencoder: palmvideoencoder: palmvideoencoder palmqcelpdemux: palmqcelpdemux: palmqcelpdemux palmqcelpdemux: audio/x-gst-fourcc-sqcp: no extensions palmmp3demux: palmmp3demux: palmmp3demux palmjpegencfilesink: palmjpegencfilesink: palmjpegencfilesink palmhttpsrc: palmhttpsrc: Palm HTTP Source Element palmamrdemux: palmamrdemux: palmamrdemux adpcmdecoder: palmadpcmdecoder: ADPCM Decoder palmaacdemux: palmaacdemux: palmaacdemux staticelements: bin: Generic bin staticelements: pipeline: Pipeline object

Total count: 36 plugins, 129 features </source>

Additional reference from XO Laptop site:

http://wiki.laptop.org/go/Programming_the_camera
http://wiki.laptop.org/go/GStreamer#Using_gst_at_the_command_line

Currently looking at ways to use the camera preview pipe as a method of video recording through the WebOS GUI by diverting it to the filesystem.

File of interest: /usr/lib/luna/luna-media/palmInitMedia.js


More on the camera module: http://www.st.com/stonline/products/literature/bd/14404/vx6852.htm