Difference between revisions of "VideoRecording"
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 16: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