gpt4 book ai didi

video - 如何在几秒钟内可靠地找到视频的帧数?

转载 作者:行者123 更新时间:2023-12-04 08:08:29 26 4
gpt4 key购买 nike

我需要一种快速可靠的方法来获取视频的总帧数。
以下是我尝试过的以下方法及其缺陷:

  • ffprobe(快速方式)
    ffprobe -select_streams v:0 -show_entries 流=nb_frames -of default=noprint_wrappers=1 input.mp4

  • 问题:经常返回 N/A,不可靠。
  • ffprobe(慢速)
    ffprobe -count_frames -select_streams v:0 -show_entries stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 input.mp4

  • 问题:相当慢,较长的视频可能需要一分钟。
  • ffmpeg(快速方式)
    ffmpeg -i input.mp4 -map 0:v:0 -c 复制 -f null -

  • 问题:需要一次完全解码视频,这相当慢
    我知道我正在寻找的东西是可能的,因为某些软件(如 Topaz Video Enhance)可以做到。但我不知道如何在我的 C# 项目或 ffmpeg 中实现这一点。

    最佳答案

    命令

    ffmpeg -i input.mp4 -map 0:v:0 -c copy -f null -
    不解码帧,因此是最快的通用方式。
    对于 MP4/MOV 系列文件,还有另一种可能更快的方法。
    ffmpeg -i in.mp4 -v trace 2>&1 -hide_banner | grep -A 10 codec_type=0 | grep -oP "(?<=sample_count=)\d+"
    FFmpeg 在输入输入时解析元数据。解复用器通常会在日志中发布一些消息,其中包含从 header 中读取的一些关键参数。 MOV/MP4 解复用器在跟踪日志级别执行此操作,它包括所有轨道的“样本计数”。上面的命令将其提取为视频轨道。

    关于video - 如何在几秒钟内可靠地找到视频的帧数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66098161/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com