如何在 ffprobe 中省略 JSON 输出中的错误消息?

How to omit error messages in JSON output in ffprobe?

使用 ffprobe 获取流详细信息时出现 Input buffer exhausted before END element found 错误。 ffprobe 提供请求的信息,但错误包含在输出中并创建无效 JSON.

ffprobe -loglevel error -select_streams v:0 -show_entries stream=width,height:stream_tags=rotate -of json testVideo.mp4

{
[aac @ 0x7fc06201cc00] Input buffer exhausted before END element found
    "programs": [

    ],
    "streams": [
        {
            "width": 640,
            "height": 640,
            "tags": {

            }
        }
    ]
}

如何在使用 ffprobe 时防止 JSON 输出中出现错误消息?

这是视频linktestVideo.mp4

重定向标准错误

JSON输出到stdout。错误输出到 stderr。两者都在控制台输出中打印。您可以重定向 stderr 输出,这样它就不会包含在控制台输出中。

ffprobe -select_streams v:0 -show_entries stream=width,height:stream_tags=rotate -of json testVideo.mp4 2> error.log

忽略错误

此错误并未阻止您获取请求的数据,因此您可以忽略它。使用 -loglevel quiet / -v quiet 消除错误以防止它们包含在输出中。

ffprobe -loglevel quiet -select_streams v:0 -show_entries stream=width,height:stream_tags=rotate -of json testVideo.mp4

与重定向相比的缺点是您可能会错过重要的错误。