管道 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" 进入您重定向输出的文件。
我想通过管道传输 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" 进入您重定向输出的文件。