如何知道 ffmpeg concat 播放列表中当前正在播放什么文件?

如何知道 ffmpeg concat 播放列表中当前正在播放什么文件?

我有一个 Docker Alpine Linux 容器,其中装有 ffmpeg,用于将大量视频文件流式传输到 YouTube。视频通过包含视频文件路径ffmpeg -f concat -i mylist.txt的位置注入。mylist.txt

我需要发送有关当前正在播放的文件的消息。有什么方法可以了解当前正在播放哪个文件吗?

  • 我检查了 ffmpeg 文档并没有找到它,但也许我错过了在播放列表切换时从 ffmpeg 运行脚本的方法?
  • 或者可能是某些 ffmpeg 控制台输出模式打印当前文件名?
  • 或者有什么方法可以获取 ffmpeg 当前打开的文件?
  • 或者也许在 ffmpeg 打开文件时捕获事件?

答案1

我能够通过使用标志来实现这一点-v debug。它非常冗长,但当它打开播放列表中的下一个文件时,它将输出以下输出:

[NULL @ 0x52f21478d4c2] Opening '<FILENAME>' for reading

为了过滤命令行中的输出“live”,我使用了从这篇文章中读到的方法:

https://unix.stackexchange.com/questions/213002

Grep 将过滤详细输出并仅显示 CLI 中最后打开的文件。示例如下:

script -c "ffmpeg -v debug -f concat -i playlist.txt <OTHER FLAGS>" /dev/null | grep 'reading'

相关内容