我有一个 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'