我正在开展一项使用ffmpeg
作为其核心功能的Python项目。基本上,我使用ffmpeg
的功能归结为以下两个命令:
ffmpeg -i udp://<address:port> -qscale:v 2 -vf "fps=30" sttest%04d.jpg
ffmpeg -i udp://<address:port> -map data-re -codec copy -f data out.bin
很简单的东西。
我正在尝试创建一个自包含程序(使用上述ffmpeg
功能),它可以轻松安装在任何特定系统上,而不依赖于该系统具有必要的依赖项,因为我希望将这些依赖项与程序本身一起打包。
考虑到这一点,从程序内部使用libav*
库执行此功能是否最佳选择?还是使用ffmpeg
命令行工具的包装器(ffmpy
)更好?我目前对每种方法的缺点的想法是使用库可能是最佳实践,但似乎过于复杂,需要学习如何使用它们(并且在此过程中可能需要学习C语言,我从未学过)。只是为了完成我上面提到的这两件基本事情。总体来说,这些库对我来说有点黑盒子,并且没有太多文档。但是使用ffmpeg
的包装器的问题在于它基本上依赖于调用子进程,这似乎有点粗糙。虽然我不确定为什么我感觉如此反对子进程。