使用 FFMPEG 将 GIF 和音频文件合并为一个视频文件的最简单方法是什么

问题描述

我有一个音频文件一个 GIF,我想将它们合并为一个视频文件,我已完成以下操作:

将 GIF 转换成视频

循环输出视频 X 次 X = (int) (audioDuration / 1000.0) / gifDuration;

将最终视频与音频合并

FFmpeg 命令:

将 GIF 转换成视频

-f gif -y -i input.gif -c:a copy -c:v libx265 -crf 26 -preset ultrafast -s 1080*1920 -pix_fmt yuv420p -map 0 gif2video.mp4

循环输出视频X次

-y -stream_loop " + X + " -i gif2video.mp4 -c copy looped_output.mp4

将最终视频与音频合并:

-y -i looped_output.mp4 -i audio.mp3 -c:v copy -c:a aac final_output.mp4

上述命令有效,但有时输出视频导出为一个 GIF 帧(无动画)和音频

解决方法

使用单个命令:

ffmpeg -stream_loop -1 -i input.gif -i audio.mp3 -map 0 -map 1:a -c:v libx265 -crf 26 -preset ultrafast -s 1080x1920 -pix_fmt yuv420p -c:a aac -movflags +faststart -shortest output.mp4

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...