#include <iostream>
extern "C" {
#include <libavformat/avformat.h>
#include <libavcodec/avcodec.h>
#include <libavutil/avutil.h>
}
int main() {
// 初始化FFmpeg库
av_register_all();
avformat_network_init();
// 打开输入文件或流
AVFormatContext* formatContext = nullptr;
if (avformat_open_input(&formatContext, "input.mp4", nullptr, nullptr) != 0) {
std::cerr << "无法打开输入文件" << std::endl;
return -1;
}
// 获取流信息
if (avformat_find_stream_info(formatContext, nullptr) < 0) {
std::cerr << "无法获取流信息" << std::endl;
return -1;
}
// 打印输入文件信息
av_dump_format(formatContext, 0, "input.mp4", 0);
// 关闭输入文件
avformat_close_input(&formatContext);
// 清理资源
avformat_network_deinit();
std::cout << "处理完成" << std::endl;
return 0;
}
av_register_all()
和 avformat_network_init()
来初始化FFmpeg库和网络模块。avformat_open_input()
打开指定的输入文件(如 "input.mp4"
)。avformat_find_stream_info()
获取输入文件的流信息。av_dump_format()
打印输入文件的详细信息。avformat_close_input()
关闭输入文件。avformat_network_deinit()
释放网络模块资源。这个示例代码展示了如何使用FFmpeg C++ API来打开、读取和关闭一个视频文件。
上一篇:c++ hash
下一篇:c++ usleep
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站