通过在linux上使用ffmpeg合并png和jpeg图像和音频文件来创建幻灯片视频

时间:2017-06-16 11:01:43

标签: audio video ffmpeg slideshow

我正在使用png,jpeg和音频文件创建幻灯片视频我得到的问题是,我只需要使用png或jpeg,但我想同时使用两者,所以我怎么能这样做我的清单我正在尝试的命令。请帮我看看。

/usr/bin/ffmpeg '-framerate' '1/27' '-pattern_type' 'glob' '-i' '/var/www/html/phpvideotoolkit-v2-master/examples/media/images/*.jpg' '-i' '/var/www/html/phpvideotoolkit-v2-master/examples/media/1.mp3' '-pix_fmt' 'yuv420p' '-shortest' '-y' '-q' '4' '-strict' 'experimental' '-threads' '1' '-acodec' 'aac' '-ar' '22050' '-vcodec' 'mpeg4' '-s' '320x240' '/var/www/html/ffmpe/1.mp4' 

通过这样做,我只能创建jpg图像视频,但我想要两者。

我也使用了concat命令,但没有得到任何输出我已经读过一些过滤器但如何使用图像我不知道所以你能帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

FFmpeg支持图像序列的管道,因此如果启用扩展的globbing,它就足以让所有文件以.jpg.png结尾。但是,如果你传递混合格式,FFmpeg似乎会感到困惑,所以最好将所有图像转换(在这种情况下使用ImageMagick)到PNG,然后传递它们。

如您所见,所有图像,即使是那些已经是PNG的图像,也会被转换。这样效率有点低,但除非你有很多大图像,否则不应该太糟糕 IM命令中的-quality 01确保图像仅被最小化压缩。在FFmpeg之后立即解压缩时,花费大量时间和精力进行压缩是没有意义的。

shopt -s extglob

convert \
/var/www/html/phpvideotoolkit-v2-master\
/examples/media/images/*+(.jpg|.png) -quality 01 png:- |\
  /usr/bin/ffmpeg -y -framerate 1/27 \
  -f image2pipe -i - \
  -i /var/www/html/phpvideotoolkit-v2-master/examples/media/1.mp3 \
  -pix_fmt yuv420p \
  -shortest -q 4 -strict experimental -threads 1 \
  -acodec aac -ar 22050 \
  -vcodec mpeg4 -s 320x240 /var/www/html/ffmpe/1.mp4