在linux上运行ffmpeg时出错

在linux上运行ffmpeg时出错

我在 Windows 机器上进行开发,并成功使用以下代码检查视频:

ffmpeg -v error -i $file_path -f null - 2>&1

将它部署到 Linux 后,我得到了下面的错误,我在强大的 Google 上找不到任何解决办法

Expected number for v but found: error

有什么明智之言吗?

答案1

-v采用数字来表示详细程度,因此您只需要写入-v 0错误(按照原文),或者-v 1写入更多信息。

答案2

也许你想要的是-err_detect旗帜?

-err_detect        <flags>      .D.VA. set error detection flags
   crccheck                     .D.VA. verify embedded CRCs
   bitstream                    .D.VA. detect bitstream specification deviations
   buffer                       .D.VA. detect improper bitstream length
   explode                      .D.VA. abort decoding on minor error detection    
   careful                      .D.VA. consider things that violate the spec and have not been seen in the wild as errors
   compliant                    .D.VA. consider all spec non compliancies as errors
   aggressive                   .D.VA. consider things that a sane encoder should not do as an error

答案3

你可能正在使用旧版本的ffmpeg,很可能是 CentOS 附带的旧版本。根据你的内核,你可以下载静态构建, 或者自己动手建造获取最新版本。

然后,-v选项(或-loglevel,相同)接受以下参数:

  • ‘安静’——什么也不表现出来;保持沉默。
  • 'panic' – 仅显示可能导致进程崩溃的致命错误,例如断言失败。目前无用。
  • 'fatal' – 仅显示致命错误。这些错误会导致进程绝对无法继续。
  • “错误”——显示所有错误,包括可以恢复的错误。
  • 'warning' – 显示所有警告和错误。任何与可能不正确或意外事件相关的消息都将显示。
  • 'info' – 在处理过程中显示信息性消息。这是对警告和错误的补充。这是默认值。
  • 'verbose' – 与 info 相同,但更详细。
  • 'debug' – 显示所有内容,包括调试信息。

接受数字,但这些是硬编码值在里面log.h文件中

AV_LOG_QUIET    -8
AV_LOG_PANIC     0
AV_LOG_FATAL     8
AV_LOG_ERROR    16
AV_LOG_WARNING  24
AV_LOG_INFO     32
AV_LOG_VERBOSE  40
AV_LOG_DEBUG    48

因此,如果您愿意,可以使用这些数字,但当然,使用字符串表示形式会更容易。

相关内容