搞Qt音视频开发超过十年了,大概从2012年就用Qt结合ffmpeg做简易demo,至今为止这个开源的demo下载量还是巨大的。记得当时还是ffmpeg2,前几天ffmpeg7都发布了,时间过得真快,前女友家的小孩都上初一了。
搞到今天为止,发现一个现象,都是初学者会遇到的,那就是但是各种编译,看到ffmpeg函数如此多的接口,很复杂,迟迟不敢下手,总结一句话,搞Qt+ffmpeg开发首先就是不要怕,直接撸,直接开干。一开始我也是很怕的,尤其是linux和嵌入式上面,还要自己编译,后面搞熟悉了以后,发现就是打几行命令,也没有那么可怕的。
-
ffmpeg的库有链接顺序要求,如果不按照顺序来,也许在windows上没有问题,但是到了unix系统很可能有问题,报错提示云里雾里的找不到原因。顺序参照ffmpeg自带示例中的编译链接顺序即可。正确顺序是 LIBS += -L/ -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil -lavdevice 。不是所有的库都是必须的,比如avdevice库,如果代码中没用上也没引用,可以不需要。
-
ffmpeg解码中,av_find_best_stream第五个参数传入AVCodec的话,就直接获取到了值,而不用avcodec_find_decoder来处理。
-
ffmpeg在解码的时候,avcodec_alloc_context3的参数AVCodec不是必须的,如果这里是NULL,则下面avcodec_open2的时候就必须传入。编码的时候在avcodec_allo