Filter滤镜剖析—ScliceThread多线程
作者:罗上文,微信:Loken1,公众号:FFmpeg弦外之音
FFmpeg 里面有两种多线程架构,如下:
- SliceThread 多线程,分片 级别多线程,就是把一个 AVFrame 分成多个分片,然后多线程同时处理这些分片。具体实现在
libavutil/slicethread.c里。 - FrameThread 多线程,帧 级别多线程,这个架构是多个线程同时处理多个 AVFrame。具体实现在
libavcodec/pthread._frame.c里。
Filter 滤镜里面使用的是 SliceThread 多线程,滤镜暂时不支持帧级别多线程。
但是 SliceThread 多线程是一个通用的架构设计,也不只是滤镜会用到,编码器,解码器也会用到 SliceThread。
参考资料:
- 《FFmpeg滤镜中的多线程计算》- 王伟
