65 lines
1.9 KiB
Markdown
65 lines
1.9 KiB
Markdown
# video_player_elinux
|
|
|
|
The implementation of the Video Player plugin for flutter elinux. APIs are designed to be API compatible with the the official [`video_player`](https://github.com/flutter/plugins/tree/master/packages/video_player).
|
|
|
|

|
|
|
|
## Required libraries
|
|
|
|
This plugin uses [GStreamer](https://gstreamer.freedesktop.org/) internally.
|
|
|
|
```Shell
|
|
$ sudo apt install libglib2.0-dev libgstreamer1.0-dev
|
|
# Install as needed.
|
|
$ sudo apt install libgstreamer-plugins-base1.0-dev \
|
|
gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
|
|
gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
|
|
```
|
|
|
|
## Usage
|
|
|
|
### pubspec.yaml
|
|
```yaml
|
|
dependencies:
|
|
video_player: ^2.4.7
|
|
video_player_elinux:
|
|
git:
|
|
url: https://github.com/sony/flutter-elinux-plugins.git
|
|
path: packages/video_player
|
|
ref: main
|
|
```
|
|
|
|
### Source code
|
|
|
|
Import `video_player` in your Dart code:
|
|
```dart
|
|
import 'package:video_player/video_player.dart';
|
|
```
|
|
|
|
### Enable GstEGLImage
|
|
|
|
If GstEGLImage is enabled on your target device, adding the following code to `<user's project>/elinux/CMakeLists.txt` may improve playback performance.
|
|
|
|
```
|
|
add_definitions(-DUSE_EGL_IMAGE_DMABUF)
|
|
set(USE_EGL_IMAGE_DMABUF "on")
|
|
```
|
|
|
|
### Customize for your target devices
|
|
|
|
To improve the performance of this plugin, you will need to customize the pipeline in the source file. Please modify the source file and replace the `videoconvert` element with a H/W accelerated element of your target device to perform well.
|
|
|
|
`bool GstVideoPlayer::CreatePipeline()` in packages/video_player/elinux/gst_video_player.cc
|
|
|
|
#### default:
|
|
|
|
```
|
|
playbin uri=<file> video-sink="videoconvert ! video/x-raw,format=RGBA ! fakesink"
|
|
```
|
|
|
|
#### i.MX 8M platforms:
|
|
|
|
```
|
|
playbin uri=<file> video-sink="imxvideoconvert_g2d ! video/x-raw,format=RGBA ! fakesink"
|
|
```
|