error: cannot convert ‘uint8_t* {aka unsigned char*}’ to ‘AVPacket*’ for argument ‘1’ to ‘int av_new_packet(AVPacket*, int)’
时间: 2024-05-04 15:20:21 浏览: 113
无法从 int? 转换为 int 运行时出现错误
这个报错是因为你在调用 `av_new_packet` 函数时传入的参数类型不正确导致的。该函数的第一个参数需要传入一个 `AVPacket*` 类型的指针,表示要创建的 AVPacket 对象,而你传入的是一个 `uint8_t*` 类型的指针,编译器无法将其转换成 `AVPacket*` 类型。
要解决这个问题,你需要将传入 `av_new_packet` 函数的第一个参数改为 `AVPacket*` 类型,例如:
```c++
AVPacket packet;
av_new_packet(&packet, buffer_size);
```
这里我们定义了一个 `AVPacket` 类型的变量 `packet`,然后将其地址传入 `av_new_packet` 函数中。这样就可以正确创建一个 AVPacket 对象了。
阅读全文