我正在考虑创建一个视频库软件,该软件可以跟踪我的所有视频并跟踪我还没有看过的视频和这样的统计数据。统计数据将特定于使用该软件的每个用户。
我的问题是,python 适合创建这个软件还是我需要像 c++ 这样的东西。
我正在考虑创建一个视频库软件,该软件可以跟踪我的所有视频并跟踪我还没有看过的视频和这样的统计数据。统计数据将特定于使用该软件的每个用户。
我的问题是,python 适合创建这个软件还是我需要像 c++ 这样的东西。
Python 非常适合此类任务——事实上,最受欢迎的视频网站 YouTube 本质上是用 Python 编程的(当然,使用从 Python调用的低级组件来完成诸如网络服务、关系数据库、视频转码等任务——那里对于所有这些类型的任务,有很多这样的可重用开源组件,但是您的应用程序的逻辑流和所有应用程序级逻辑都可以完美地使用 Python)。
就在昨天晚上,在山景城当地的 Python 兴趣小组会议上,我们有新成员刚搬到硅谷从事视频行业基于 Python 的工作,他们说这个行业的专业级视频处理是也越来越多地转向 Python——像 Pixar 和 ILM 这样的中坚分子一直在使用 Python,但在过去的一两年里,业界大量采用 Python。
是的。对于这样的事情,Python 比 C++ 更容易使用。您可能希望将其用作数据库的前端,例如 sqlite3
也许你应该看看这个项目: Moovida
它是一个完整的媒体中心,开源,用 python 编写,易于扩展。我不知道它是否会完全按照您的要求开箱即用,但您可能可以轻松添加您想要的功能。
当然,您几乎可以使用任何编程语言来完成任何任务。但在注意到这一点之后,很明显不同的语言也有不同的方式很好地适应不同的任务。
C/C++ 是非常“硬件友好”的语言。基本上,这些语言只是汇编器之上的一个抽象级别,C 使用指针等。C++ 几乎就像一个(半)可移植的面向对象的汇编器,如果你想有趣的话。:) 这使得 C/C++ 快速并且擅长与硬件对话。
但在其他情况下,这些相同的特征会变成错误特征。指针可以遍历整个内存,除非您小心,否则您将到处泄漏内存。所以我会说(现在 C 人会生气)C/C++ 实际上直接不适合你想做的事情。
您想要一种更高的语言,可以自动且不可见地执行更多操作,例如内存管理。那里有很多可供选择,但毫无疑问 Python 非常适合这个。在过去的几年里,Python 作为编写这类软件的新酷语言出现了,许多多媒体软件,如 Freevo 和已经提到的 Moovida 都是用 Python 编写的。
如果您希望您的代码真正快速,请使用 C++(或并行 fortran)。
但是在您的应用程序中,99% 的运行时不会在您的代码中,而是在 GUI 库、操作系统调用、等待用户交互、调用库(用 C 编写)以打开视频文件和制作缩略图,那种东西。
因此,使用 C++ 将使您的代码快 100 倍,而您的应用程序将因此快 1%,这完全没用。如果你用 C++ 编写它,你将需要几个月的时间,而使用 Python 你会更快地完成并获得更多的乐趣。
使用 C++ 甚至可以让它变慢很多,因为在 Python 中,您可以通过使用超级强大的原语(如哈希、集合、生成器等)非常轻松地构建更具可扩展性的算法,在 5 分钟内尝试几种算法,看看哪个是最好的,导入一个已经完成了 90% 工作的库,等等。
用 Python 编写它。