FFmpeg相信流媒体开发者的都不陌生,咬文嚼字就不凑字数了,耽误大家时间。最近在各方资源里听到甚至专业人士说”FFmpeg是做音视频编解码的“,说的太狭隘了,了解FFmpeg的一般也都知道VLC,VLC是一套以FFmpeg为基础的完整流媒体解决方案,行内称:VLC是汽车,FFMpeg就是发动机”,这就很形象的描述了FFmpeg的功能。FFmpeg是集音视频采集、音视频演示数据处理、解复用、编码解码、渲染等完整流媒体框架,内合入ffplay可实现渲染播放。webrtc是功能上与之并驾齐驱的一套架构,它合入一些新的编码标准,如音频的OPUS标准,SIP信令协议等,后续再以webrtc为框架写一些blog。
不说废话,先上代码。程序中将视频流decode成YUV420P格式,合入SDL2渲染播放。虽然是完整代码,目的为学术交流和技术共享,无意培养伸手党。代码中解决ffmpeg中新老接口对接,其它都是按decode的一般流程解码,如有不妥之处,欢迎指正。技术交流群:479245235,欢迎各界精英论道。
#include "stdio.h"
#include "iostream"
#include "stdlib.h"
#include <string.h>
#include <math.h>
#include <chrono> //C+