Πρόβλημα με χτίσιμο του minitube 3.0 αξιοποιώντας χτισμένη βιβλιοθήκη libmpv

Όπως ρωτώ και στο aksubuntu προσπαθώ να στήσω το minitube γιατί το .deb που διανέμει ο προγραμματιστής δεν παίζει και θέλει εξαρτήσεις που δεν διανέμονται στα repos του ubuntu 18.04 συγγεκριμένα θέλει:

  • Qt 5.11.0 ενώ παίζει και με Qt > 5.6.0 ενώ τα repos διανέμουν την Qt 5.9.x
  • Libmpv v0.29.0 ενώ τα repos δίνουν την v0.27.0

Έτσι σκεύτικα να χτίσω την κατάλληλη έκδοση του libmppv εγκαθιστώντας τις εξαρτήσεις:

sudo apt-get install autoreconf lilfreetype-dev libfribidi-dev libfontconfig-dev yasm

Και να αξιοποιήσω τα εργαλεία που δίνουν οι προγραμματιστές για να κτίσεις την libmpv. Εφόσον τα εγκατέστησα μέσω git εκτέλεσα τις κάτωθι εντολές:

cd mpv-build
echo --enable-libmpv-shared > mpv_options
./use-mpv-custom v0.29.0
./update
./rebuild -j4
sudo ./install

Και εγκατέστησα την βιβλιοθήκη επιτυχώς. Έτσι πλέον θεριτικά μπορώ να κτίσω και να εγκαταστήσω το minitube.

git clone --recursive https://github.com/flaviotordini/minitube.git
sudo apt install build-essential qt5-default qttools5-dev-tools qt5-qmake qtdeclarative5-dev libqt5sql5-sqlite libqt5x11extras5-dev libmpv-dev
#Ensuring that will compile the v3.0
git checkout --branch v3.0 3.0
# Used my own API key
qmake "DEFINES += APP_GOOGLE_API_KEY=YourAPIKeyHere"
make

Αλλά λαμβάνω τα ακόλουθα σφάλματα:

build/obj/mpvwidget.o: In function `MpvWidget::~MpvWidget()':
mpvwidget.cpp:(.text+0x19b): undefined reference to `mpv_render_context_free'
build/obj/mpvwidget.o: In function `non-virtual thunk to MpvWidget::~MpvWidget()':
mpvwidget.cpp:(.text+0x1f7): undefined reference to `mpv_render_context_free'
build/obj/mpvwidget.o: In function `MpvWidget::initializeGL()':
mpvwidget.cpp:(.text+0x399): undefined reference to `mpv_render_context_create'
mpvwidget.cpp:(.text+0x3b9): undefined reference to `mpv_render_context_set_update_callback'
build/obj/mpvwidget.o: In function `MpvWidget::paintGL()':
mpvwidget.cpp:(.text+0x78c): undefined reference to `mpv_render_context_render'
build/obj/mpvwidget.o: In function `MpvWidget::onFrameSwapped()':
mpvwidget.cpp:(.text+0xb5): undefined reference to `mpv_render_context_report_swap'
build/obj/mpvwidget.o: In function `MpvWidget::maybeUpdate()':
mpvwidget.cpp:(.text+0x807): undefined reference to `mpv_render_context_report_swap'
collect2: error: ld returned 1 exit status
Makefile:630: recipe for target 'build/target/minitube' failed

Έχετε ιδέα πως θα προχωρίσω σε επιτυχές build?

Λοιπόν μάγκα μου άκου τι να κά
ΣΒΗΣΕ ότι σου δίνει τα repos από libmpv:

sudo apt-get purge libmpv-dev && sudo autoremove

Και ξανακάνε compile την libmpv. Μετά πήγαινε στον φάκελο minitube και καθάρισε ότι χτισήματα με make clean και φτου ξανά από την αρχή.

Το μόνο προ μέ είναι ότι δεν ακούς τίποτα ότι παίζει το minitube.

ΓΚΕΓΚΕ;

1 Like

Άρα λύθηκε το θέμα σου για να μαρκαριστεί ως λυμένο;

Partially γιατί δεν έχω ήχο στα βίντεο αλλά εν μέρει είναι λυμένο έτσι ναι. Εάν λύσω και το πρόβλημα με τον ήχο τότε όλα καλώς.

Άρα δεν το μαρκάρω ως λυμένο.

Γιατί δεν έχεις ήχο στα βίντεο, με τι audio buffer δουλεύεις pulse, alsa, esd, oss ξέρω γω…?!

Δεν νομίζω να βρίσκετε το πρόβλημα στο υποσύστημα ήχου του Ubuntu 18.04LTS, γιατί το βίντεο παίζει κανονικά εάν παιχτεί μέσω browser. Ίσως να χρειάζεται κάποια extra headers.

1 Like

Δεν υπάρχει κάτι pre builded να το δεις ;

To pre-builded στην ίδια έκδοση δεν παίζει η είναι παλαιώτερη. Παρόλα αυτά υπάρχει flatpak που παίζει καλά αλλα στην έκδοση 2.9.0 του minitube (υπάρχουσα 3.0)

1 Like

Λοιπόν έκανα μια φρέσκια εγκατάσταση Ubuntu 18.04LTS και επανα-αποπειράθηκα να ξανακτίσω το minitube.

Έτσι για αρχή έκτισα την έκδοση 0.29.0 της libmpv σύμφωνα με τον δημιουργό:

sudo apt-get install git dh-autoreconf build-essential libfreetype6-dev libfribidi-dev libfontconfig1-dev yasm libmp3lame-dev libx264-dev libfdk-aac-dev python
git clone https://github.com/mpv-player/mpv-build.git
cd mpv-build
echo --enable-libx264 >> ffmpeg_options
echo --enable-libmp3lame >> ffmpeg_options
echo --enable-libfdk-aac >> ffmpeg_options
echo --enable-nonfree >> ffmpeg_options
echo --enable-libmpv-shared > mpv_options
./use-mpv-custom v0.29.0
./update
./rebuild -j4
sudo ./install
cd ..

Και μετά έκτισα το minitube:

sudo apt install build-essential qt5-default qttools5-dev-tools qt5-qmake qtdeclarative5-dev libqt5sql5-sqlite libqt5x11extras5-dev
git checkout -b v3.0 3.0
qmake "DEFINES += APP_GOOGLE_API_KEY=^API_KEY^"
make

Όπου ^API_KEY^ το κλειδί για το Youtube Data API v3 που το λαμβάνετε από την διεύθυνση: https://console.developers.google.com η οποία απαιτεί login.

Το πρόβλημά μου είναι ι λαμβάνω την συμπεριφορά όπως στο βίντεο: https://tinyurl.com/display-mintube

Ουσιαστικά το βίντεο δεν αναπαράγεται ΑΛΛΑ μεταβαίνει στο επόμενο. Έχετε ιδέα γιατί συμβαίνει;

1 Like