Open marvic41 opened 3 years ago
Did you copy usr/bin/ffmpeg.bin
into your AppDir? And did you deploy its dependencies, too? How?
Please give more context. What do you want to do, and how are you doing it.
@probonopd, Thanks for replay.
This app is, screen capture and saving video. This app works fine on Ubuntu 20 desktop with ffmpeg installed. App use ffmpeg command,
newProcess->start("ffmpeg", QStringList(str).split(" "));
But after .AppImage it is not.
Inside run.sh
install -Dm755 ../ScreenApp/ffmpeg-wrapper.sh AppDir/usr/bin/ffmpeg
cp ../ScreenApp/ffmpeg-wrapper.sh AppDir/AppRun/ffmpeg
--> tried
cp /usr/bin/ffmpeg AppDir/AppRun/ffmpeg.bin
-->tried
install -Dm 755 /usr/bin/ffmpeg AppDir/usr/bin/ffmpeg.bin
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/bin ffmpeg"
Here copied all all libs to AppDir/usr/lib/
libjpeg.so.8 libavdevice.so.58 libavfilter.so.7 libavformat.so.58 libavcodec.so.58 libavutil.so.56 libmp3lame.so.0 libx264.so.155 libx265.so.179
Like this,
install -Dm 755 /usr/lib/x86_64-linux-gnu/libjpeg.so.8 AppDir/usr/lib/
Linuxdeployqt command,
./linuxdeployqt-5-x86_64.AppImage AppDir/ScreenApp.desktop -qmldir=$SOURCE_DIR -qmake=$QMAKE_PATH -executable=AppDir/usr/bin/ffmpeg.bin -appimage -no-translations -bundle-non-qt-libs -verbose=2
Please use https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage - 5 is very outdated and unsupported.
AppRun
must be a file or a symlink. Not a directory. Or nothing (then linuxdeployqt
creates it for you).
@probonopd, continuous version needs older version of glibc 2.27. This app works only on Ubuntu 20.
Got error with continuous,
Linuxdeployqt 7 (commit b469748), build 734 built on 2021-06-13 13:17:57 UTC ERROR: The host system is too new. Please run on a system with a glibc version no newer than what comes with the oldest currently still-supported mainstream distribution (Ubuntu Bionic), which is glibc 2.27. This is so that the resulting bundle will work on most still-supported Linux distributions.
Very Strange, it did not gave error with Linuxdeployqt 5. How the app compiled with older version but not newer version of Linuxdeployqt.
@probonopd
From this link, What is meaning of Step 9, I could not understand it.
9. Copy your wrapper in appdir/AppRun (i.e. to the place of the AppRun that was there).
@marvic41
The system you are running linuxdeploy on is too new. Please run on an older distribution, e.g., Ubuntu Bionic.
This is what the message wants to tell you.
@probonopd,
I understood that libc version issue. Now I am trying on Ubuntu 18. App is running but not playing video, ffmpeg issue.
If step 9 implemented, may be AppRun would invoke wrapper path.
HERE="$(dirname "$(readlink -f "${0}")")"
export LD_LIBRARY_PATH=${HERE}/usr/lib:$LD_LIBRARY_PATH
exec "${HERE}/usr/bin/ffmpeg.bin" "$@"
Anything missing from above, (AppDir/usr/bin)
Followed this workaround for ffmpeg.
https://github.com/J5lx/pencil2d/commit/5da5e8202436014d99287b7c61703ec53e47e85b#diff-6ac3f79fc25d95cd1e3d51da53a4b21b939437392578a35ae8cd6d5366ca5485R78
Even copied this .sh to AppDir/AppRun/ also.
Thanks.