我正在尝试编写一个程序,将PNG数据传输到FFMPEG中以将其呈现为视频。该程序的视频输出无效,因此我使用PNG屏幕截图作为调试输入。
屏幕截图是在任何图像查看器中正常打开的所有有效PNG文件。但是当我运行命令时:
cat 2017*.png | ./ffmpeg -f image2pipe -r 1 -vcodec png -i - -vcodec libx264 out.mp4
我确实从目录中的2017年开始的每个屏幕截图中获得了一段视频输出。但是,视频完全是黑色的,并且在开始播放视频后立即立即。 (每帧不是一秒或帧)。
这是在Windows上的MSYS,使用Windows版本的FFMPEG,如果它有任何区别。
我可以更改哪些内容实际上可以通过管道输入制作视频?我的第一个猜测是它可能与错误的args或缺少适当的编解码器有关。
答案 0 :(得分:5)
cat 2017*.png | ./ffmpeg -f image2pipe -framerate 1 -i - -c:v libx264 -vf format=yuv420p -r 25 out.mp4
使用-framerate
输入选项代替-r
for image2pipe demuxer。
很多玩家都遇到如此低帧率的MP4。添加-r
输出选项以使其具有更正常的输出速率。 ffmpeg
会复制要匹配的帧,但它仍然看起来好像是1 fps。
添加-vf format=yuv420p
(或别名-pix_fmt yuv420p
)以使输出使用广泛兼容的像素格式。