【问题标题】:display only lines from output that contains a specified word仅显示输出中包含指定单词的行
【发布时间】:2021-01-27 04:07:24
【问题描述】:

我正在寻找一种方法来仅获取包含指定单词的行,在这种情况下,所有行都包含输出中的单词 Stream

我试过了;

streams=$(ffprobe -i  "movie.mp4"  | grep "Stream")

但这并没有得到任何结果..

或者我是否需要将其输出到文件中,然后尝试提取我要查找的行?

【问题讨论】:

  • "grep" 应该是您正在寻找的。问:从命令行运行ffprobe -i "movie.mp4" | grep "Stream" 会是什么样子?也许“ffprobe”没有写入标准输出?还是“Stream”的拼写不同?

标签: linux bash ffprobe grip


【解决方案1】:

@paulsm4 出现在 ... 输出到 STDERR。

streams=$(ffprobe -i  "movie.mp4"  |& grep "Stream")

注意&

【讨论】:

  • 是的@JoBe ... unix/linux 工具通常将标准输出和标准错误作为单独的流实现,简而言之 STDOUT/STDERR ...出于某种原因ffprobe 的开发人员似乎认为他们的输出是“错误”而不是“输出”,我无法理解其原因。
  • ffmpeg 工具有一个通用的日志 API。由于 ffmpeg 可以通过 stdout 管道传输媒体数据,因此将日志发送到 stderr。
【解决方案2】:

不需要grep。只需直接使用ffprobe 即可获取您需要的任何信息。

输出所有信息

ffprobe -loglevel error -show_format -show_streams input.mp4

仅视频信息

ffprobe -loglevel error -show_streams -select_streams v input.mp4

仅音频信息

ffprobe -loglevel error -show_streams -select_streams a input.mp4

宽x高

Getting video dimension / resolution / width x height from ffmpeg

持续时间

How to get video duration?

格式/编解码器

帧信息

Get video frames information with ffmpeg

更多信息和示例

FFmpeg Wiki: ffprobe

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    • 2018-10-05
    • 2013-06-29
    • 2020-07-31
    • 1970-01-01
    • 2019-01-03
    相关资源
    最近更新 更多