1
AoEiuV020 2021-07-15 09:54:29 +08:00
比如直接使用 ffmpeg 静态库,直接调方法,
但合起来就要被 GPL 病毒感染了, |
2
no1xsyzy 2021-07-15 10:10:20 +08:00
要求用户同时安装 ffmpeg,避免每个软件自己带一份(
两个可执行文件也没什么问题, $approot/bin 下面东西多了去的软件多了去了。 |
3
wasd6267016 2021-07-15 10:37:48 +08:00
把路径藏深点就行 别让用户乱点到问题就不大
|
4
di94sh 2021-07-15 11:36:53 +08:00
https://github.com/imageio/imageio-ffmpeg
可以试试这个库,会自动下载对应平台的二进制版本到 site-packages/imageio-ffmpeg 下面,只有一个可执行文件, 然后调用 get_ffmpeg_exe 这个方法就可以拿到路径, 直接 subprocess.call( [get_ffmpeg_exe(), '-i', video_url, .............] ) 就能用 |
5
anai1943 OP @di94sh 谢谢你的回答,用你这个思路试了下
import imageio_ffmpeg from ffmpy3 import FFmpeg FFmpeg(executable=imageio_ffmpeg.get_ffmpeg_exe(), global_options='-y', inputs={opath:None, self.videoPaths[row]: None}, outputs={root+'_tmp'+ext: '-c copy -map 0:v:0 -map 1:a:0'}) 可以正常使用,用 pyinstaller 打包应用的时候,在这卡住了 INFO: Building PKG (CArchive) PKG-00.pkg ,检查 PKG-00.pkg 发现已经有 100 多个 G 了,还在继续增长。 去掉 import imageio_ffmpeg 后,打包正常。 |
7
di94sh 2021-07-15 16:35:26 +08:00 1
@di94sh #6 或者你知道你要使用那个版本的 ffmpeg 的话
https://github.com/imageio/imageio-binaries/tree/master/ffmpeg 直接 去下载对应的 可执行文件,然后当成静态文件打包进去,不过包照样巨大。 或者弄一个 安装时下载的策略: https://github.com/imageio/imageio-ffmpeg/blob/master/tasks.py#L101 |