GStreamer

From OpenPLi Wiki
Jump to: navigation, search
GStreamer-002.png


GStreamer supports a wide variety of media-handling components, including simple audio playback, audio and video playback, recording, streaming and editing. The pipeline design serves as a base to create many types of multimedia applications such as video editors, transcoders, streaming media broadcasters and media players.

It is designed to work on a variety of operating systems, e.g. Linux kernel-based operating systems (like Enigma2), the BSDs, OpenSolaris, Android, macOS, iOS, Windows, OS/400.

GStreamer is free and open-source software subject to the terms of the GNU Lesser General Public License (LGPL)[5] and is being hosted at freedesktop.org.


OpenPLi and GStreamer


GStreamer is native in OpenPLi, meaning it's already in there when you installed OpenPLi on your box and when you view a recording you will be using it. Although GStreamer is highly flexible a setopbox is not designed to be a media player. You can use it as a media player, but there may be problems.


Skip time


The best way to return to a certain part of a recorded movie is to use the Skip time keys on your remote.


Subtitles


When you want to look at external movies, meaning not the ones you recorded with your box, then it's always recommended to mux subtitles into the container. To mux means to combine different things (like a video stream, audio stream, or subtitle) into a single container media format, like MKV, AVI, etc. When you have muxed subs, that means the subtitles were externally added to the media container you have, this always gives a better result than separate subtitle files.


Tools to mux subtitles


A tool that does this very nicely is MKVToolnix and can be downloaded from GStreamer-001.png


OpenPLi and GStreamer versions


OpenPLi 4 with GStreamer 0.10.x

OpenPLi 5 with GStreamer 1.8.3

OpenPLi 6.0 with Gstreamer 1.12.2


Remote debugging'


Remote debugging is possible, So then you don't need to install dbg packages, also symbols are loaded on host, so you will certainly not run out of memory.

On target:
1. Install gdbserver

opkg install gdbserver

2. start gdbserver

gdbserver localhost:2345 /usr/bin/enigma2

On host:
1. setup cross-development environment, toolchain, and sysroot:

MACHINE=machine bitbake image_name -c populate_sdk
cd openpli-oe-core/build/tmp/sdk
./oecore-x86_64-mips32el-toolchain-nodistro.0.sh #select your $SDK directory

2. setup your environment

source $SDK/environment-setup-mips32el-oe-linux

3. enter directory with enigma2 with debugging symbols

cd $SDK/sysroots/mips32el-oe-linux/usr/bin/.debug

4. create .gdbinit file with sysroot set at $SDK/sysroots/mips32el-oe-linux

echo "set sysroot $SDK/sysroots/mips32el-nf-oe-linux/" > .gdbinit

5. start gdb

mipsel-oe-linux-gdb enigma2

6. in gdb connect to target

(gdb) target remote target-host:2345
(gdb) continue

Source: https://forums.openpli.org/topic/40177-openpli-4-gstreamer-171-master-git-images-2016-01-05/page-7#entry528410