ffmpeg多线程编码原理

分片在编码中叫slice,slice的意义是把一帧分成多个独立的编码单元,为什么需要slice呢,我感觉有两个方面,1.多线程,为了编码更快;2.传输为了防止错误蔓延到其他区域,比如一帧图像分成上下两个分slice,每个slice是半帧图像,当第一个slice错误了,第一个slice解码会花屏,但是第二个slice的图像是没有问题的;

 一个视频流编码不是你想多线程就多线程的,编码是有前后关系的,不是你外部实现的,一般是编码器内部启动多线程同时编码同一帧,不能多线程编码前后几帧,多线程编码一帧的前提是要按照一定的规律把图像切分成多个分片,也就会产生多个nalu;

 当帧分成多个编码分片后就会产生多个nalu,一般多线程编码就会有多个nalu;

猜你喜欢

转载自blog.csdn.net/u014162133/article/details/85050242