/
notes
227 lines (146 loc) · 7.95 KB
/
notes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
gstreamer 1.0 errors
=========================================
(planeEtoiles:24165): GStreamer-CRITICAL **: gst_poll_read_control: assertion 'set != NULL' failed
(planeEtoiles:24165): GStreamer-CRITICAL **: gst_bus_create_watch: assertion 'bus->priv->poll != NULL' failed
(planeEtoiles:24165): GLib-CRITICAL **: g_source_set_callback: assertion 'source != NULL' failed
Segmentation fault (core dumped)
NEED TO CALL:
gst_bus_remove_signal_watch()
see https://bugs.webkit.org/show_bug.cgi?id=107544
https://github.com/openframeworks/openFrameworks/blob/master/libs/openFrameworks/video/ofGstUtils.cpp
bus = gst_pipeline_get_bus (GST_PIPELINE(gstPipeline));
if(bus){
gst_bus_add_watch (bus, (GstBusFunc) busFunction, this);
}
(planeEtoiles:10475): GStreamer-CRITICAL **: gst_poll_read_control: assertion 'set != NULL' failed
(planeEtoiles:10475): GStreamer-CRITICAL **: gst_poll_write_control: assertion 'set != NULL' failed
(planeEtoiles:10475): GStreamer-CRITICAL **: gst_poll_read_control: assertion 'set != NULL' failed
[ error ] ofGstUtils: startPipeline(): unable to pause pipeline
[warning] ofGstUtils: getDurationNanos(): couldn't query time duration
[ error ] ofGstVideoPlayer: allocate(): cannot get pipeline caps
[ error ] 148 file doesn't exist video/stars/STAR_3-glow_animation-30fps.mov
[notice ] BLOB: 148 make blob 1507 sparklier
[notice ] videoElement: 148 loadMovie 'video/stars/STAR_3-glow_animation-30fps.mov'
(planeEtoiles:10475): GStreamer-CRITICAL **: gst_poll_get_read_gpollfd: assertion 'set != NULL' failed
[ error ] ofGstUtils: startPipeline(): unable to pause pipeline
[warning] ofGstUtils: getDurationNanos(): couldn't query time duration
[ error ] ofGstVideoPlayer: allocate(): cannot get pipeline caps
[ error ] 148 file doesn't exist video/stars/STAR_3-glow_animation-30fps.mov
[notice ] BLOB: 148 add video bridge
[notice ] videoElement: 148 loadMovie 'video/stars/LINK_02-loop_animation-30fps.mov'
[notice ] TRANSITION: 12979 endSegment() 6:4
[notice ] TRANSITION: 12979 hard cut
[notice ] TRANSITION: 12979 endedInstructions()
[notice ] TRANSITION: 12979 nextSegment
[notice ] TRANSITION: 12979 reached end, force terminate program, so it restarts itself again
[notice ] 12979 goodbye
(planeEtoiles:1459): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed
(planeEtoiles:1459): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed
(planeEtoiles:1459): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed
(planeEtoiles:1459): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed
(planeEtoiles:1459): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed
(planeEtoiles:1459): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed
(planeEtoiles:1459): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed
(planeEtoiles:1459): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed
(planeEtoiles:1459): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed
(planeEtoiles:1459): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed
(planeEtoiles:1459): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed
(planeEtoiles:1459): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed
(planeEtoiles:1459): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed
(planeEtoiles:1459): GStreamer-CRITICAL **: Padname '':sink_0 does not belong to element inputselector80 when removing
(planeEtoiles:1459): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object->refcount > 0' failed
(planeEtoiles:1459): GStreamer-CRITICAL **: Padname '':sink_0 does not belong to element inputselector5 when removing
IMAGE SEQUENCE > VIDEO
=============================================
sudo gst-launch multifilesrc location=%05d.png index=0 caps="image/png, framerate=10/1" ! pngdec ! ffmpegcolorspace ! jpegenc ! avimux ! filesink location=video.avi sync=false
VIDEO > IMAGE SEQUENCE
==============================================
sudo gst-launch filesrc location=video.avi ! decodebin ! pngenc ! multifilesink location=video_%d.png
sudo gst-launch filesrc location=video.avi ! decodebin ! jpgenc ! multifilesink location=video_%d.jpg
LAUNCH VIDEO
==============================================
gst-launch -v filesrc location=video.avi ! avidemux ! theoradec ! videoconvert ! videoscale ! ximagesink
gst-launch videotestsrc ! video/x-raw,format=I420,width=320,height=240,framerate=20/1 ! videocrop left=40 right=40 ! xvimagesink
gst-launch -v filesrc location=video.avi ! avidemux ! theoradec ! videoscale ! video/x-raw, width=50 ! xvimagesink
gst-launch -v filesrc location=video.avi ! decodebin ! videoscale ! video/x-raw-yuv,width=640 ! autovideosink
switcher -d &
switcher-ctrl -C uridecodebin video
switcher-ctrl -s video loop true
switcher-ctrl -i video to_shmdata 'path/to/the/file'
COPY FILES OVER SSH
==============================================
sudo scp planeviz@10.10.44.21:~/Documents/log/of_log/planeEtoiles_2014-01-28* ~/Documents/log/of_log/
sudo scp planeviz@10.10.44.21:~/src/of_v0.8.0_linux64_release/apps/myApps/planeEtoiles/bin/data/stats* ~/Documents/log/
INSTALL BLOBSERVER AND DEPENDENCIES
===============================================
Blobserver installation howto:
In a terminal, type the following commands:
sudo apt-get install help2man gettext automake bison build-essential flex libtool
sudo apt-get install libglib2.0-dev liblo0-dev
sudo apt-get install liblcms2-dev libxml2-dev libtbb-dev
sudo apt-get install libglib2.0-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
sudo apt-get install libjson-glib-dev liblo-dev
sudo apt-get install libcgsi-gsoap-dev
sudo apt-get install libgtk2.0-dev pkg-config python-dev
or all at once:
sudo apt-get -y install help2man gettext automake bison build-essential flex libtool libglib2.0-dev liblo0-dev liblcms2-dev libxml2-dev libtbb-dev libglib2.0-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libjson-glib-dev liblo-dev libcgsi-gsoap-dev libgtk2.0-dev pkg-config python-dev
As a rule of thumb, we get source code in a dedicated directory:
mkdir src
cd src
We need to install libshmdata, which is used to read/write to shared memories:
git clone git://code.sat.qc.ca/libshmdata.git
cd libshmdata
git checkout develop
./autogen.sh
./configure
make -j4
sudo make install
cd ..
And we need switcher to access GiGE cameras through shared memories:
git clone git://code.sat.qc.ca/switcher.git
cd switcher
git checkout develop
./autogen.sh
./configure
make -j4
sudo make install
cd ..
We also need the latest version of OpenCV, which is not yet packaged for Ubuntu. So:
git clone git://code.opencv.org/opencv.git
cd opencv
git checkout 2.4
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DWITH_TBB=ON ..
make -j8
sudo make install
cd ../..
Atom dependency
cd ~/src/
git clone git://code.sat.qc.ca/libatom.git
cd libatom
git checkout develop
./autogen.sh
./configure
make
sudo make install
--> Aravis support (for GiGe cameras):
sudo apt-get install intltool gobject-introspection gtk-doc-tools
cd ..
git clone git://git.gnome.org/aravis
cd aravis
./autogen.sh
./configure --enable-gtk-doc-html --enable-gtk-doc --enable-viewer --enable-gst-plugin
make && sudo make install
cd ../blobserver/
Then we can get and install blobserver:
git clone git://code.sat.qc.ca/blobserver.git
cd blobserver
git checkout develop
./autogen.sh
./configure
make -j4
sudo make install
sudo ldconfig
And that's it, you should now be able to run blobserver and blobtrainer. To try it, just run:
blobserver