Du bist nicht angemeldet.

#1 15.11.2019 03:54:34

vmp
Mitglied

QDVDAuthor in Qt5

Für Arch Linux gibt es QDVDAuthor Pakete.
Damit kann man Video DVDs und Photo slideshows erstellen.

Beitrag geändert von vmp (18.11.2019 20:57:23)

Offline

#2 15.11.2019 13:43:30

vmp
Mitglied

Re: QDVDAuthor in Qt5

Beim Zusammenbau von qdvdauthor gibt es ein Problem mit Verlinken von qrender, da bei dem Paket ffmpeg067 die shared libraries libavcodec.a beim Paketzusammenbau entfernt werden so meine Vermutung.

Offline

#3 15.11.2019 21:23:53

Dirk
Moderator

Re: QDVDAuthor in Qt5

So nachdem wir alles administrative mal kurz schnell hier geklärt haben, zum Thema.

vmp, baust du das Paket selbst? Die Downloadquelle zeigt bereits fertig gebaute Pakete. In wie weit man diesen Vertrauen kann, weiß ich zwar nicht, aber was passiert, wenn du qdvdauthor-2.3.1-10-x86_64.pkg.tar.xz herunterlädst und mittels pacman -U installierst? ffmpeg ist in den Arch-Repos vorhanden, und kann ganz normal mit pacman installiert werden.

Offline

#4 16.11.2019 00:38:42

vmp
Mitglied

Re: QDVDAuthor in Qt5

Ich kann die Pakete unter OpenSuSE build service für Arch Linux selber bauen.
qdvdauthor-2.3.1-10-x86_64.pkg.tar.xz ist zwar vorhanden enthält aber keine Dateien, da bloß 3,1 KiB groß.
Um qdvdauthor zu bauen benötigt man ein altes ffmpeg in der Version 0.6.7 (ffmpeg067). Da aber im ffmpeg067 (ffmpeg067-0.6.7-1-x86_64.pkg.tar.gz) solche Dateien wie libavcodec.a nach dem Zusammenbau des Pakets automatisch entfernt werden gelingt das compilieren von qdvdauthor nicht wegen einem Linker Problem.
Ich habe in PKGBUILD von ffmpeg067: options=('staticlibs') eingefügt um libavcodec.a zu behalten es wird aber trotzdem wieder gelöscht.
Am eigenem Rechner habe ich kein Arch Linux installiert bloß OpenSuSE.

Beitrag geändert von vmp (18.11.2019 20:59:30)

Offline

#5 16.11.2019 13:51:49

Dirk
Moderator

Re: QDVDAuthor in Qt5

vmp schrieb:

Am eigenem Rechner habe ich kein Arch Linux installiert bloß OpenSuSE.

Dann solltest du vielleicht in einem OpenSUSE-Forum nachfragen, wie man für Arch Linux Programme kompiliert.

Offline

#6 16.11.2019 19:39:02

vmp
Mitglied

Re: QDVDAuthor in Qt5

Ich habe in Netz folgendes dazu gefunden:
Any reason the PKGBUILD only installs the dynamic .so file and not the static .a one?
Antwort:
Arch doesn't provide static libraries

Offline

#7 16.11.2019 21:14:59

wirr
Mitglied

Re: QDVDAuthor in Qt5

Wie installierst du ffmpeg067-0.6.7-1-x86_64.pkg.tar.gz in der Umgebung, in der du qdvdauthor baust?

Offline

#8 16.11.2019 21:29:09

stefanhusmann
Moderator

Re: QDVDAuthor in Qt5

vmp schrieb:

Ich habe in Netz folgendes dazu gefunden:
Any reason the PKGBUILD only installs the dynamic .so file and not the static .a one?
Antwort:
Arch doesn't provide static libraries

Das ist so, aber das sollte dich nicht hindern, es für deine Gegebenheiten anders zu machen.

Du solltest mal genau beschreiben, was du gemacht hast und was dabei passiert ist.

options=('staticlibs') steht da übrigens nicht, sondern OPTIONS=('staticlibs'). Ersteres wäre korrekt.

Offline

#9 16.11.2019 22:43:57

vmp
Mitglied

Re: QDVDAuthor in Qt5

Ich habe folgendes im Internet gefunden:
For building static libraries just append  -static to the package name, eg. mingw-w64-qt5-base-static
Also habe ich ffmpeg067 zu ffmpeg067-static umbenannt und die static libraries .a wurden ins Paket übernommen (ffmpeg067-static-0.6.7-1-x86_64.pkg.tar.xz).

Bei Antwort #4 steht der Link grau hinterlegt unter "OpenSuSE build service" versteckt wo ich qdvdauthor bauen kann.  ffmpeg067-static installiere ich über PKGBUILD von qdvdauthor mit
depends=('qt5-base' 'ffmpeg067-static' 'vlc' 'xine-lib').

Trotz libavcodec.a in im Paket ffmpeg067-static scheitert das kompilieren von qdvdauthor am Linker wegen z.B.: 'avcodec_open' aus der Datei <libavcodec/avcodec.h>.
Ich versuche noch OPTIONS=('staticlibs') zu options=('staticlibs') zu ändern.

Beitrag geändert von vmp (16.11.2019 22:58:13)

Offline

#10 16.11.2019 22:52:20

stefanhusmann
Moderator

Re: QDVDAuthor in Qt5

ffmpg067-static konnte ich hier bauen.

Mit diesem PKGBUILD

# Maintainer: Suchan Roland <snrd@arcor.de>


pkgname=ffmpeg067-static
pkgver=0.6.7
pkgrel=1
pkgdesc='Complete solution to record, convert and stream audio and video'
arch=('i586' 'x86_64')
url='https://ffmpeg.org/'
license=('GPL2')
depends=()
provides=(
  libavcodec.so
  libavdevice.so
  libavformat.so
  libavutil.so
  libswscale.so
  libavcodec.a
  libavdevice.a
  libavformat.a
  libavutil.a
  libswscale.a
)
options=('staticlibs')
source=("https://ffmpeg.org/releases/ffmpeg-${pkgver}.tar.gz" nodocs.patch)
md5sums=('8afa86b7b8e91645ba93015c0561a424'
         '496b425db8835d1d964bc295ae927fb5')

prepare() {
  cd ffmpeg-${pkgver}
  patch -Np1 < "$srcdir"/nodocs.patch
}

build() {
  cd ffmpeg-${pkgver}
  
  sed -i 's@-Werror@@g' configure

  ./configure \
    --prefix=/usr \
    --libdir=/usr/lib \
    --incdir=/usr/include/ffmpeg067 \
    --shlibdir=/usr/lib \
    --enable-gpl \
    --enable-static \
    --enable-shared \
    --disable-ffserver
    make clean
    make
}

package() {
  cd ffmpeg-${pkgver}
  
  #pkg-config --modversion libavcodec

  make DESTDIR="$pkgdir" install
  rm -rf "$pkgdir"/usr/bin/ffprobe
  rm -rf "$pkgdir"/usr/share
  rm -rf "$pkgdir"/usr/lib/{*.so,pkgconfig/*}
  
  echo '***'
  ls "${pkgdir}"/usr/include
  #ls "${pkgdir}"/usr/lib/ffmpeg067
  echo '***'
  ls "${pkgdir}"/usr/lib
  echo '***'
  ls "${pkgdir}"/usr/lib/pkgconfig

  find "${pkgdir}"/usr/bin -type f -exec mv {} {}067 \;
}

plus diesem Patch (der das Bauen der Doku unterbindet, da diese nicht texinfo-konform ist)

diff -Naur ffmpeg-0.6.7.orig/Makefile ffmpeg-0.6.7.new/Makefile
--- ffmpeg-0.6.7.orig/Makefile	2013-09-23 02:37:52.000000000 +0200
+++ ffmpeg-0.6.7.new/Makefile	2019-11-16 20:51:00.262442234 +0100
@@ -40,7 +40,6 @@
 FF_EXTRALIBS := $(FFEXTRALIBS)
 FF_DEP_LIBS  := $(DEP_LIBS)
 
-ALL_TARGETS-$(CONFIG_DOC)       += documentation
 
 ifdef PROGS
 INSTALL_TARGETS-yes             += install-progs install-data

Die qdvdathor-Sourcen aus dem opensuse-Repo konnte ich nicht downloaden, da man dafür einen Acoount braucht, und die originale Software möchte sich wohl gerne gegen ffmpeg063 (nicht 067) linken.

Offline

#11 16.11.2019 23:57:24

vmp
Mitglied

Re: QDVDAuthor in Qt5

Ich habe qdvdauthor wieder auf ffmpeg063-static umgestellt mit dem Linker Fehler:

[  180s] [ 33%] Linking CXX executable qrender
[  180s] cd /usr/src/packages/BUILD/qdvdauthor/src/qdvdauthor-2.3.1/build/qrender && /usr/bin/cmake -E cmake_link_script CMakeFiles/qrender.dir/link.txt --verbose=1
[  180s] /usr/bin/c++  -march=x86-64 -mtune=generic -O2 -pipe -fno-plt   -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -rdynamic CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o CMakeFiles/qrender.dir/encoder.cpp.o CMakeFiles/qrender.dir/filter.cpp.o CMakeFiles/qrender.dir/logger.cpp.o CMakeFiles/qrender.dir/main.cpp.o CMakeFiles/qrender.dir/parser.cpp.o CMakeFiles/qrender.dir/render.cpp.o CMakeFiles/qrender.dir/server.cpp.o CMakeFiles/qrender.dir/slideshow.cpp.o CMakeFiles/qrender.dir/utils.cpp.o CMakeFiles/qrender.dir/__/qdvdauthor/xml_slideshow.cpp.o CMakeFiles/qrender.dir/engine/moc_ffmpeg_enc.cpp.o CMakeFiles/qrender.dir/moc_encoder.cpp.o CMakeFiles/qrender.dir/moc_filter.cpp.o CMakeFiles/qrender.dir/moc_logger.cpp.o CMakeFiles/qrender.dir/moc_parser.cpp.o CMakeFiles/qrender.dir/moc_render.cpp.o CMakeFiles/qrender.dir/moc_server.cpp.o CMakeFiles/qrender.dir/moc_shared.cpp.o CMakeFiles/qrender.dir/moc_slideshow.cpp.o CMakeFiles/qrender.dir/moc_utils.cpp.o CMakeFiles/qrender.dir/__/qdvdauthor/moc_xml_slideshow.cpp.o  -o qrender /usr/lib/libQt5Widgets.so.5.13.2 /usr/lib/libQt5Xml.so.5.13.2 -lxine -lX11 /usr/lib/libQt5Network.so.5.13.2 -lavcodec -lavformat -lavutil -lswscale /usr/lib/libQt5Gui.so.5.13.2 /usr/lib/libQt5Core.so.5.13.2
[  181s]  /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::qrender_avcodec_open(AVCodecContext*, AVCodec*, void*)':
[  181s] ffmpeg_enc.cpp:(.text+0x92): undefined reference to `avcodec_open'
[  181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Audio::resample() [clone .part.0]':
[  181s] ffmpeg_enc.cpp:(.text+0x1cd): undefined reference to `audio_resample'
[  181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Audio::decode(AVPacket*)':
[  181s] ffmpeg_enc.cpp:(.text+0x369): undefined reference to `avcodec_decode_audio3'
[  181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Audio::decodeAudio(bool&)':
[  181s] ffmpeg_enc.cpp:(.text+0x6ff): undefined reference to `audio_resample_init'
[  181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Audio::decodeAudio(AVPacket*)':
[  181s] ffmpeg_enc.cpp:(.text+0x84e): undefined reference to `audio_resample_init'
[  181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Vid::allocPicture(unsigned char*&, PixelFormat, int, int)':
[  181s] ffmpeg_enc.cpp:(.text+0x916): undefined reference to `avcodec_alloc_frame'
[  181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Vid::getNextPacket(AVStream*, AVStream*, int&)':
[  181s] ffmpeg_enc.cpp:(.text+0xf3e): undefined reference to `avcodec_alloc_frame'
[  181s] /usr/bin/ld: ffmpeg_enc.cpp:(.text+0x10c0): undefined reference to `avcodec_encode_video'
[  181s] /usr/bin/ld: ffmpeg_enc.cpp:(.text+0x117e): undefined reference to `avcodec_encode_video'
[  181s] /usr/bin/ld: ffmpeg_enc.cpp:(.text+0x11b6): undefined reference to `avcodec_encode_video'
[  181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Media::closeStream()':
[  181s] ffmpeg_enc.cpp:(.text+0x1599): undefined reference to `av_close_input_file'
[  181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Audio::closeStream()':
[  181s] ffmpeg_enc.cpp:(.text+0x15d5): undefined reference to `audio_resample_close'
[  181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Media::openStream(QString)':
[  181s] ffmpeg_enc.cpp:(.text+0x1cff): undefined reference to `av_open_input_file'
[  181s] /usr/bin/ld: ffmpeg_enc.cpp:(.text+0x1d57): undefined reference to `av_find_stream_info'
[  181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::addVideoStream(int, Encoder::Encoder::enVideo, int)':
[  181s] ffmpeg_enc.cpp:(.text+0x2428): undefined reference to `av_new_stream'
[  181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::addAudioStream(int)':
[  181s] ffmpeg_enc.cpp:(.text+0x28a5): undefined reference to `av_new_stream'
[  181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::writeVideoFrame()':
[  181s] ffmpeg_enc.cpp:(.text+0x295e): undefined reference to `avcodec_encode_video'
[  181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::endStream()':
[  181s] ffmpeg_enc.cpp:(.text+0x2ab3): undefined reference to `url_fclose'
[  181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::FFmpeg()':
[  181s] ffmpeg_enc.cpp:(.text+0x33f9): undefined reference to `avcodec_init'
[  181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Vid::getFrame(AVFrame*, int, int)':
[  181s] ffmpeg_enc.cpp:(.text+0x34f0): undefined reference to `avcodec_alloc_frame'
[  181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Vid::getFrame(double)':
[  181s] ffmpeg_enc.cpp:(.text+0x36f8): undefined reference to `avcodec_alloc_frame'
[  181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::initStream(QString, Encoder::Encoder::enVideo, Encoder::Encoder::enAudio, unsigned int)':
[  181s] ffmpeg_enc.cpp:(.text+0x3990): undefined reference to `guess_format'
[  181s] /usr/bin/ld: ffmpeg_enc.cpp:(.text+0x3aeb): undefined reference to `guess_format'
[  181s] /usr/bin/ld: ffmpeg_enc.cpp:(.text+0x3b40): undefined reference to `av_set_parameters'
[  181s] /usr/bin/ld: ffmpeg_enc.cpp:(.text+0x3b9e): undefined reference to `url_fopen'
[  181s] /usr/bin/ld: ffmpeg_enc.cpp:(.text+0x3c07): undefined reference to `av_write_header'
[  181s] collect2: error: ld returned 1 exit status
[  181s] make[2]: *** [qrender/CMakeFiles/qrender.dir/build.make:455: qrender/qrender] Error 1
[  181s] make[2]: Leaving directory '/usr/src/packages/BUILD/qdvdauthor/src/qdvdauthor-2.3.1/build'
[  181s] make[1]: *** [CMakeFiles/Makefile2:246: qrender/CMakeFiles/qrender.dir/all] Error 2

Offline

#12 17.11.2019 04:37:46

vmp
Mitglied

Re: QDVDAuthor in Qt5

Ich habe qdvdauthor-2.3.1-010a.tar.gz für Arch Linux nach sf.net/p/qdvd verschoben.
Ich kann es mit PKGBUILD fehlerfrei kompilieren aber nach qdvdauthor-2.3.1-10-x86_64.pkg.tar.xz werden keine Dateien "installiert".
Bei ffmpeg063-static habe ich die PATHS anders gesetzt wegen ffmpeg-1:4.2.1-4.

Beitrag geändert von vmp (17.11.2019 04:38:58)

Offline

#13 17.11.2019 17:31:50

vmp
Mitglied

Re: QDVDAuthor in Qt5

Das Paket qdvdauthor-2.3.1-10-x86_64.pkg.tar.xz für  Arch Extra hat jetzt eine Große von 1,7MiB also es ist mit Dateien gefüllt.
Dasjenige für Arch eine Größe von 3,1KiB also ist es immer noch leer. Eigentlich durch Zufall (immer wieder kompilieren) habe ich das vollgefüllte Paket erhalten.

Offline

#14 18.11.2019 17:44:26

vmp
Mitglied

Re: QDVDAuthor in Qt5

Ich habe wie in deinem PKGBUILD folgendes geändert (im PKGBUILD von qdvdauthor):
make DESTDIR="${pkgdir}" install
zu:
make DESTDIR="$pkgdir" install
und das Paket qdvdauthor-2.3.1-10-x86_64.pkg.tar.xz für Arch hat eine Größe von 1,9MiB.

Beitrag geändert von vmp (18.11.2019 21:24:32)

Offline

#15 18.11.2019 18:18:37

stefanhusmann
Moderator

Re: QDVDAuthor in Qt5

Was heißt "in meinem PKGBUILD". Ich habe keines zu qdvdauthor hier gepostet. Und bei mir baut es noch nicht einmal die build-Function zuende, geschweige denn irgendwas zu installieren.

Offline

#16 18.11.2019 19:45:20

vmp
Mitglied

Re: QDVDAuthor in Qt5

Ich meinte das PKGBUILD von Antwort #10 (ffmpeg067-static).
Unter dem Link von Antwort #1 gibt es die fertigen Pakete von qdvdauthor für Arch und Arch Extra.

Beitrag geändert von vmp (18.11.2019 19:59:31)

Offline

#17 18.11.2019 21:17:54

drcux
Mitglied

Offline

#18 21.11.2019 21:41:12

vmp
Mitglied

Re: QDVDAuthor in Qt5

Hat jemand das Paket qdvdauthor-2.3.1-10-x86_64.pkg.tar.xz ausprobiert?

Offline

#19 22.11.2019 05:26:48

skull-y
Mitglied

Re: QDVDAuthor in Qt5

Warum probierst du es nicht selbst?

Online

#20 23.11.2019 22:32:34

vmp
Mitglied

Re: QDVDAuthor in Qt5

@stefanhausmann
Ich habe PKGBUILD von qdvdauthor und ffmpeg063-static nach https://aur.archlinux.org gestellt. Kannst du schauen ob man die Pakete bauen kann.

Offline

#21 24.11.2019 03:50:50

blub
Gast

Re: QDVDAuthor in Qt5

@vmp
Du solltest dir mal durchlesen, welche Aufgabe provides=() im PKGBUILD hat. Und dein ffmpeg Paket hat keinerlei Abhängigkeiten?!

#22 24.11.2019 09:16:30

stefanhusmann
Moderator

Re: QDVDAuthor in Qt5

vmp schrieb:

@stefanhausmann
Ich habe PKGBUILD von qdvdauthor und ffmpeg063-static nach https://aur.archlinux.org gestellt. Kannst du schauen ob man die Pakete bauen kann.

Bei mir lassen sich beide Pakete nicht bauen.

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums