baizeteam / baize-toolbox

白泽工具箱,基于electron+ffmpeg实现的一款功能强大的多媒体工具
https://baize.plume.vip
GNU Lesser General Public License v3.0
110 stars 23 forks source link

[Bugs]ArchLinux下打包后无法正常运行 #9

Closed zxp19821005 closed 1 month ago

zxp19821005 commented 6 months ago

如题。 按照说明文档,在ArchLinux下进行了打包,环境信息如下:

zxp19821005 commented 6 months ago

另外补充一点,能否声明一下License类型?我计划将其移植到ArchLinux的AUR,需要添加这个字段,但是我在README.mdpackage.json中都找不到License。

sulgweb commented 6 months ago

阿里云盘中的linux版本ffmpeg文件无法被分享,可以选择其他网盘,或者官网进行下载。 image

关于无法进入主界面的问题可能是ffmpeg没有权限或者没有找到(路径应该是resources/app.asar.unpacked/resources/linux/ffmpeg),在mac有遇到过没有权限的问题(通过chmod 赋予权限)。 但是目前手中没有linux相关的设备,暂时无法提供太多的帮助,十分抱歉。 image

sulgweb commented 6 months ago

License已添加 image

zxp19821005 commented 6 months ago

感谢回复! 按照你的指点,目前已经编译成功并且成功运行,但是还是存在几个问题:

  1. 运行时终端有报错,但不影响使用:
    
    $ /usr/bin/baize-toolbox --no-sandbox %U
    ffmpeg 版本信息:
    ffmpeg version n6.1.1 Copyright (c) 2000-2023 the FFmpeg developers
    built with gcc 13.2.1 (GCC) 20230801
    configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-frei0r --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libharfbuzz --enable-libiec61883 --enable-libjack --enable-libjxl --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libplacebo --enable-libpulse --enable-librav1e --enable-librsvg --enable-librubberband --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpl --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-vapoursynth --enable-version3 --enable-vulkan
    libavutil      58. 29.100 / 58. 29.100
    libavcodec     60. 31.102 / 60. 31.102
    libavformat    60. 16.100 / 60. 16.100
    libavdevice    60.  3.100 / 60.  3.100
    libavfilter     9. 12.100 /  9. 12.100
    libswscale      7.  5.100 /  7.  5.100
    libswresample   4. 12.100 /  4. 12.100
    libpostproc    57.  3.100 / 57.  3.100

(node:126336) electron: Failed to load URL: file:///opt/baize-toolbox/resources/app.asar/out/renderer/siteAssistTransprent/index.html%23/screen-shot-win with error: ERR_FILE_NOT_FOUND (Use baize-toolbox --trace-warnings ... to show where the warning was created)

2. 按照ArchLinux相关打包准则,尽量使用系统侧的Electron,但是我使用系统侧的electron29运行时报错:

$ env ELECTRON_OZONE_PLATFORM_HINT=auto PATH="./:${PATH}" ELECTRON_FORCE_IS_PACKAGED=true ELECTRON_IS_DEV=0 NODE_ENV=production electron29 app.asar (node:127632) electron: Failed to load URL: file:///opt/baize-toolbox/resources/app.asar/out/renderer/siteAssistTransprent/index.html%23/screen-shot-win with error: ERR_FILE_NOT_FOUND (Use electron --trace-warnings ... to show where the warning was created)

而且和昨天一样,一直显示启动中,我估计是还是一样的问题,找不到`ffmpeg`
3. 能否在任务里添加“暂停任务”、“停止任务”之类的按钮呢?我试着提取一个视频中的音频,终端中输出如下:

[126336:0423/093519.553963:ERROR:atom_cache.cc(229)] Add chromium/from-privileged to kAtomsToCache FFMPEG_COMMAND { command: [ '-i', '/run/media/zxp/Other/Movie/2018疯狂外星人720P.mp4' ], taskId: 'tIfuylH8tjfFmgCI', inputFilePath: '/run/media/zxp/Other/Movie/2018疯狂外星人720P.mp4', outputFloaderPath: '/home/zxp-endeavouros/Documents\output/extract', outputFileName: '2018疯狂外星人720P-1713836125126.mp3', outputType: 'mp3', createTime: 1713836125135, progress: 0, code: 'extract' }


当我要终止任务时,却找不到按钮,关闭程序后,`ffmpeg`依然在后台执行任务。
BTW,我已经将其移植到了ArchLinux的AUR:https://aur.archlinux.org/packages/baize-toolbox-git
其中,[PKGBUILD](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=baize-toolbox-git)为ArchLinux的编译打包脚本,[baize-toolbox.sh](https://aur.archlinux.org/cgit/aur.git/tree/baize-toolbox.sh?h=baize-toolbox-git)为我写的通用的Electron运行脚本。
[My_AUR_Files](https://github.com/zxp19821005/My_AUR_Files)为我移植的AUR软件包仓库,所有的Electron软件包都是使用相同的运行脚本进行调用。
sulgweb commented 6 months ago

1.报错问题已修复,一个未来的功能模块被合并进主分支,目前暂时简单屏蔽一下。https://github.com/baizeteam/baize-toolbox/commit/bd64c169036af6adbcba6ddd105c634e1ee8fc64 2.在后续适配linux的版本中进行排查。 3.有暂停和停止任务的计划,会在后续版本迭代中会加入。

zxp19821005 commented 6 months ago

目前在终端运行已经不报错了。但是第二个问题确实还是存在。我进入编译好的resources目录中,运行以下命令:

$ env ELECTRON_OZONE_PLATFORM_HINT=auto PATH="./:${PATH}" ELECTRON_FORCE_IS_PACKAGED=true ELECTRON_IS_DEV=0 NODE_ENV=production electron29 app.asar

没有任何包错信息,仍然显示启动中。我在想一个问题,能否将ffmpeg改为外置呢?即在程序设置界面中添加ffmpeg路径选择?至少在Linux中,ffmpeg基本上是核心组件包,不管在哪个系统,不论是在deb还是rpm还是我现在用的ArchLinux系的zst安装包,都可以指定必备依赖,这样就可以直接调用系统的ffmpeg;或者将@ffmpeg/ffmpeg添加到package.json中呢?我移植过的某个包里面似乎是这样做的,忘记是哪个了,确实是可以用的。主要是我不会编程,这个也是随便提的建议,您觉得有用的话可以采纳,没用的话就直接忽略。

sulgweb commented 6 months ago

ffmpeg在win和mac并不是核心包,所以将其打入到软件中会更加符合用户的使用。@ffmpeg/ffmpeg是wasm版本,阉割了部分功能,并且性能对比原生有一定的差距。所以可能不会接入@ffmpeg/ffmpeg,不过正在考虑将ffmpeg调整到装包流程,这样子对开发者可能会更加友好一些?

sulgweb commented 4 months ago

ffmpeg在win和mac并不是核心包,所以将其打入到软件中会更加符合用户的使用。@ffmpeg/ffmpeg是wasm版本,阉割了部分功能,并且性能对比原生有一定的差距。所以可能不会接入@ffmpeg/ffmpeg,不过正在考虑将ffmpeg调整到装包流程,这样子对开发者可能会更加友好一些?

已将ffmpeg调整为装包流程添加,无需手动下载ffmpeg,具体commit如下: e5c6663