繁体   English   中英

在 C# 代码中使用 ffprobe 获取视频文件中的帧数

[英]Get number of frames in video file using ffprobe in C# code

我可以在命令提示符下使用 Ffprobe 使用以下命令成功读取 test.mp4 中的帧数:

>ffprobe -i 'c://test.mp4' -show_frames | find /c 'pict_type'

但是,当我尝试使用以下参数从 C# 代码运行“ffprobe.exe”时:

string params = " -i 'c://test.mp4' -show_frames | find /c 'pict_type'";

它错误如下:

ffprobe version N-59453-gd52882f Copyright (c) 2007-2013 the FFmpeg developers
  built on Dec 30 2013 22:07:23 with gcc 4.8.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 59.100 / 52. 59.100
  libavcodec     55. 47.100 / 55. 47.100
  libavformat    55. 22.101 / 55. 22.101
  libavdevice    55.  5.102 / 55.  5.102
  libavfilter     4.  0.103 /  4.  0.103
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
Argument '|' provided as input filename, but ''c://test.mp4'' was already specified.

如何为 C# 解决这个问题?

我知道有一种使用Ffmpeg的解决方法,但这种方法不够干净。

可能是因为C#控制台不支持管道或查找。 我会考虑使用ffprobe输出的结果在您的C#中编写pict_type的查找实例。

字符串参数=“ -i'c://test.mp4'-show_frames”;

就像是:

output.Count(x => x ==“ pict_type”);

如果您使用 args 运行该过程:

-v 1 -print_format json -show_format -show_streams -find_stream_info \"{filePath}\"

您可以将标准输出 JsonDeserialise 到报告类中。 然后一切都可用。

虽然帧数是元数据,如果视频没有编码,你需要做一个

-count_streams

以及获得实际价值,这需要aaaaaages。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM