最近开始学习ffmpeg.学到 雷神的
最简单的基于FFMPEG的视频编码器(YUV编码为H.264)
https://blog.csdn.net/leixiaohua1020/article/details/25430425
发觉2020.5月的版本编译使用时已经运行不正确。后来修改了一点东西才成功yuvb编码出mp4.
首先是yuv文件。我没下他对应的工程文件,用的是640x360_yuv420p.yuv
对应要修改下
int in_w=640,in_h=360; //Input data's width and height
int framenum=56;
不然编码肯定会错的。
然后是原来代码运行会提示参数未指定
我只设置了格式和宽高,就能成功编码出mp4了。
pFrame->format= AV_PIX_FMT_YUV420P;
pFrame->width = in_w;
pFrame->height = in_h;
运行
目录下看有个ds.mp4 111 KB (113,923 字节)
播放器打开能正常播放。
至于提示api已经不建议。暂时我就不管了。才学习。先把旧的搞懂。
把const char* out_file = "ds.h264"; 运行,也能成功生成ds.h264. 正常播放。
下面是完整代码
#include "stdafx.h"
#include <stdio.h