如何在命令行上获取视频的帧数?

如何在命令行上获取视频的帧数?

我尝试使用 Windows 上的 ffprobe 获取视频中的帧数,但它返回 N/A。

for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=nb_frames -of default^=nokey^=1:noprint_wrappers^=1 "1.ts" 2^>^&1') do set "frames=%%I" echo %frames%

我找到了一段代码,应该能够在这些情况下获取帧的数量,但它是为 Linux 编写的,我不确定如何更改它以在 Windows 上运行。

ffmpeg -nostats -i "video.mp4" -vcodec copy -f rawvideo -y /dev/null 2>&1 | grep frame | awk '{split($0,a,"fps")}END{print a[1]}' | sed 's/.*= *//'

当 ffprobe 返回 N/A 时,有人能帮我通过 ffmpeg 获取帧数吗?谢谢!

答案1

使用

ffprobe -v 0 -select_streams v:0 -count_frames -show_entries stream=nb_read_frames -of compact=p=0:nk=1 "1.ts"

相关内容