Running GStreamer on Raspberry Pi

在 Raspberry Pi 上已经有很多的多媒体应用程序可以使用了,如 omxplayer, xbmc 等,但我想用 GStreamer 1.0 和 Wayland。

IMAG0061

在 Arch Linux ARM 的源中 GStreamer 1.0 的相关包 gstreamer, gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly 等都可以用了,但他们还依赖于 X11,虽然我是想只使用 Wayland 啦,所以就重新编译去掉这些我不需要的依赖吧。

目前先把 GStreamer 1.0 和 Pulseaudio 及 Wayland 整合起来,并能正常运行,下一步就是 GstOMX 啦,初步看了一下 Raspberry Pi 的 OpenMax 实现中包含了 Audio 和 Video Sinks,不知道我使用 GStreamer 的 pulsesink 和 waylandsink 的效果会怎么样?先试试吧。

步骤
1. pango
2. pulseaudio
3. gst-plugins-base
4. gst-plugins-good
5. gst-plugins-bad
6. gst-plugins-ugly

1. pango
pango 除去了对 X11 的依赖。
源码包:pango-1.34.0-1.src.tar.gz

2. pulseaudio
pulseaudio 除去了对 X11 的依赖。
源码包:pulseaudio-3.0-3.src.tar.gz

3. gst-plugins-base
gst-plugins-base 除去了对 X11 的依赖。
源码包:gst-plugins-base-1.0.6-2.src.tar.gz

4. gst-plugins-good
gst-plugins-good 除去了对 X11 的依赖。
源码包:gst-plugins-good-1.0.6-2.src.tar.gz

5. gst-plugins-bad
gst-plugins-bad 除去了对 X11 的依赖,编入了 eglglessink (for rpi)
源码包:gst-plugins-bad-1.0.6-3.src.tar.gz

6. gst-plugins-ugly
gst-plugins-ugly 可直接从官方源安装。

例子
1. 音频回放测试

gst-launch-1.0 audiotestsrc ! pulsesink

2. 视频回放测试

gst-launch-1.0 videotestsrc ! waylandsink

Over!

Running Wayland (Weston) on Raspberry Pi

在 Raspberry Pi 上编译与运行 Wayland (Weston Compositor),此为不依赖于 X11 的版本,所有与 X11 相关的依赖我都移除了,我只想跑个 Wayland Compositor,再跑个 GStreamer 1.0 就足够啦。

IMAG0060

环境
1. Raspberry Pi B
2. ArchLinux ARM (Base system & Compile toolchains (clang 3.2))

步骤
1. raspberrypi-firmware-pkgconfig
2. cairo (with glesv2 & openvg)
3. wayland
4. xkeyboard-config
5. weston

1. raspberrypi-firmware-pkgconfig
raspberrypi-firmware-pkgconfig 是 raspberrypi-firmware-tools 包的扩展,包含了 raspberrypi-firmware-tools 中库的 pkg-config 配置文件,后面的 cairo 与 weston 等程序编译将会依赖。
源码包:raspberrypi-firmware-pkgconfig-0.1-1.src.tar.gz

2. cairo (with glesv2 & openvg)
cairo (with glesv2) 为 weston compositor 的依赖,用于 2D 图形的渲染,需要关闭 GL 并打开 OpenGL ES v2 与 OpenVG 的支持。
源码包:cairo-1.12.14-4.src.tar.gz

3. wayland
Wayland 协议库,升级了基础协议。
源码包:wayland-1.0.90-1.src.tar.gz

4. xkeyboard-config
xkeyboard-config 提供了 xkb 的一切配置文件,weston 将会依赖,去除了对 libx11 的依赖等。
源码包:xkeyboard-config-2.8-1.src.tar.gz

5. weston
weston compositor 关闭了 x11, drm, fbdev, wayland 等 backend 支持,启用 raspberry pi 的 backend,并设置为默认。
源码包:weston-1.0.90-3.src.tar.gz

Over!

How to set GObject and subclass types property in gst-launch cmdline

Example 0

gst-launch-0.10 playbin2 uri=file:///home/heiher/movies/a.rmvb \
video-sink="fakesink"

Example 1

gst-launch-0.10 playbin2 uri=file:///home/heiher/movies/a.rmvb \
video-sink="ffmpegcolorspace ! xvimagesink"

Over!