Difference between revisions of "GStreamer"

From OpenPLi Wiki
Jump to: navigation, search
(OpenPLi and GStreamer versions)
 
(36 intermediate revisions by 2 users not shown)
Line 1: Line 1:
'''What is GStreamer'''
+
[[File:GStreamer-002.png|frameless|centre|500px]]
----
+
 
 +
 
 
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.
 
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.
  
Line 9: Line 10:
  
  
'''OpenPLi and GStreamer'''
+
=='''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. Want to no more about GStreamer take a look here [https://gstreamer.freedesktop.org <span style="color:SteelBlue">GStreamer home</span>]
GStreamer is native in OpenPLi meaning it's already in there when you installed OpenPLi 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 [[Tips_and_Tweaks#Skip_time | <span style="color:SteelBlue">Skip time</span>]] keys on your remote.
  
'''Subtitles'''
 
----
 
It's is 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.
 
  
 +
=='''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'''
+
=='''Tools to mux subtitles'''==
----
+
A tool that does this very nicely is MKVToolNix and can be downloaded from [[Image:GStreamer-001.png|100px|link=https://mkvtoolnix.download/index.html]]
A tool that does this very nicely is MKVToolnix and can be downloaded from [https://mkvtoolnix.download/index.html<span style="color:SteelBlue">https://mkvtoolnix.download/index.html/span>]<br />
 
  
  
 +
=='''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.0
  
 +
OpenPLi 6.X with GStreamer 1.12.4
  
'''OpenPLi and GStreamer versions'''
+
OpenPLi 7.X with GStreamer 1.14.4
----
+
 
OpenPLi 4 with GStreamer 0.10.x
+
OpenPLi 8.0 with GStreamer 1.18.1
 +
 
 +
OpenPLi 8.1 with GStreamer 1.18.4
 +
 
 +
OpenPLi 8.2 with GStreamer 1.18.5
 +
 
 +
=='''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.
 +
 +
'''<u>On target:</u><br />
 +
'''
 +
1. Install gdbserver
 +
opkg install gdbserver
 +
2. start gdbserver
 +
gdbserver localhost:2345 /usr/bin/enigma2
 +
 
 +
'''<u>On host:</u><br />
 +
'''
 +
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
  
OpenPLi 5 with GSstreamer 1.x
+
''Source: https://forums.openpli.org/topic/40177-openpli-4-gstreamer-171-master-git-images-2016-01-05/page-7#entry528410''

Latest revision as of 08:23, 28 May 2022

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. Want to no more about GStreamer take a look here GStreamer home


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.0

OpenPLi 6.X with GStreamer 1.12.4

OpenPLi 7.X with GStreamer 1.14.4

OpenPLi 8.0 with GStreamer 1.18.1

OpenPLi 8.1 with GStreamer 1.18.4

OpenPLi 8.2 with GStreamer 1.18.5

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