c++ - 如何使 FFmpeg C++ 代码不输出错误消息?
问题描述
我正在使用 FFmpeg 的 C++ 库解码视频,如下所示:
AVPacket* avPacket = av_packet_alloc();
if (!avPacket) std::cout << "av packet error" << std::endl;
int result = avcodec_send_packet(avCodecContext, avPacket);
if (!result) {
for ( ; !result ; ) {
result = avcodec_receive_frame(avCodecContext, avFrame);
if (!result) {
...
它可以工作,但有时 FFmpeg 会遇到有问题的帧并发出以下内容:
[h264 @ 0x7fd3bc2c4b00] no frame!
[h264 @ 0x7fd3bc2c4b00] no frame!
[h264 @ 0x7fd3bc2c4b00] no frame!
是否可以关闭这些消息?我没有看到任何明显的方法来做到这一点。
解决方案
在我的代码中,我使用av_log_set_callback()
将输出消息重定向到我自己的日志文件,因此我可以在将不需要的消息写入日志之前过滤掉它们。
推荐阅读
- java - 如何使用while循环打印“*”n次?
- machine-learning - 使用 LinearRegression 进行预测时出现 ValueError
- model-view-controller - 输入字段在 ASP.NET Core MVC 应用程序中不断在文本和日期之间切换
- javascript - 如何在 JSP 中刷新页面时重新加载会话属性?
- python - 当我找不到任何错误时,我不断收到语法错误
- java - 键盘不会为 EditText 打开
- python - ModuleNotFoundError:没有名为“项目”的模块
- windows - 是否有适用于 Windows 平台的 OWASP ZAP docker 映像?
- reactjs - 反应 16:未捕获(承诺中)错误:JSON 中位于 A 位置 0 的意外令牌 u
- php - 为什么我的请求在使用 POST 时在 PHP/Laravel 中为空