管道 ffmpeg 输出以进行视频预览

pipe ffmpeg output for video preview

我想通过管道传输 ffmpeg 输出以便能够将其作为流获取。更准确地说,我有一个远程托管的视频,我想计算预览并将其直接保存到 S3。

ffmpeg -i http://mywebsite.com/video.mp4 -ss 00:00:01 -vframes 1 -f image2 ~/test.jpg

有效(此处无流式传输)但无效:

ffmpeg -i http://mywebsite.com/video.mp4 -ss 00:00:01 -vframes 1 -f image2 pipe:1 | echo > ~/Downloads/test.image2

最新的将创建一个 1 字节的文件,这显然不是所需的输出。我不知道 image2 是什么格式,但我必须为 运行 的流式命令指定输出格式。没有流媒体也能正常工作。

有线索吗?

问题是"echo"。我认为您打算改用 "cat":

ffmpeg -i http://mywebsite.com/video.mp4 -ss 00:00:01 -vframes 1 -f image2 pipe:1 | cat > ~/Downloads/test.image2

通过调用 echo,您向标准输出输出了一个新行,该行已保存在您的文件中。 Cat 从管道获取数据流,然后 "concatenates" 进入您重定向输出的文件。