python 处理实时的视频流,例如说每一帧图片都转为灰度图,如何加速? 在同一台机器上,把视频加载到 ram 里,多进程之类的?换 C++?
1 male110 2018-04-09 19:39:35 +08:00 换 C++ |
![]() | 2 haozhang 2018-04-09 19:41:14 +08:00 via iPhone python 加载 dll,dll 处理这些→_→ |
![]() | 3 WildCat 2018-04-09 19:42:28 +08:00 |
![]() | 4 WildCat 2018-04-09 19:42:51 +08:00 video steam? 忽略我吧~ |
![]() | 5 justou 2018-04-09 21:15:00 +08:00 我晓得有一条 ffmpeg 命令行可以直接转: ffmpeg -i input -vf format=gray output, input 应该可以是流形式的, 选择用 python 的话可以试试这个: https://github.com/mikeboers/PyAV, av 用 cython 包装的 ffmpeg, 比 moviepy 用命令行方式调用 ffmpeg 可控性高很多. |
![]() | 6 fgodt 2018-04-09 21:44:11 +08:00 用 c 写个库,python 调用 c 的库可以使用 ffmpeg 如果你的机器支持硬件加速更好,解码出来的图片本来就是 yuv 的所以灰度图一并解决了 |
7 AX5N 2018-04-09 23:10:06 +08:00 你打算从头实现还是用别人的库,从头实现的话,那就是直接用 c/c++写,用 python 调用。用别人的库的话,别人基本都是已经做好优化了,你能做的大概也就是多进程处理了。这种处理的瓶颈应该不在于 io,你直接载入内存没多大用,反而搞不好撑爆你的内存 |
![]() | 8 Eds1995 2018-04-09 23:56:07 +08:00 via Android ![]() 上面说用 C/C++写库的人都是大神,OpenCV 就很快呀处理视频流。 |
9 4KMOMhIkocgLELMt 2018-04-10 00:01:35 +08:00 via iPhone @Eds1995 正解,有 pyopencv |
![]() | 10 defphilip 2018-04-10 08:57:40 +08:00 opencv 其实已经很快了,python-opencv 内部视频播放应该就是走的 ffmpeg,如果只是单纯的灰度处理,opencv 完全满足了 |
![]() | 12 flaneurse 2018-04-10 15:25:01 +08:00 opencv 读 frame... |