ffmpeg -r 15 -f image2 -loop 1 -i “%img%” -i “%audio%” -s 720x480 -pix_fmt yuvj420p -t 930 -vcodec mpeg4 “%output%”
注意:因为输入的图片有yuv420,yuv444等各种格式,因此必须加入-pix_fmt yuvj420p 参数.-loop 1 参数加入的原因是因为只有一张图片,
因此需要通过loop作为输入流形成视频。-t 930 是设置输出的视频的长度,如果有loop 而没有t参数,将会无限的合成下去。而没有loop和-t
视频轨道则会只有一张图片,视频轨道的时间只有几毫秒。而音频轨道则会是音频的长度,造成音频和视频轨道时间不一致。一些软件的播放或者视频网站的转码就会出现问题。
— 批处理 —-
@echo off
:init
title “视频合成工具”
mode con cols=80 lines=20
::color 2C
pushd %~dp0
:main
if “%1%”==”” (
set img=logo.jpg) else (
set img=%1
)
if “%2%”==”” (
set audio=input.mp3) else (
set audio=%2
)
if “%3%”==”” (
set output=%audio:.mp3=.avi%) else (
set output=%3
)
echo img:”%img%”
echo audio:”%audio%”
echo output:”%output%”
ffmpeg -r 15 -f image2 -loop 1 -i “%img%” -i “%audio%” -s 720x480 -pix_fmt yuvj420p -t 930 -vcodec mpeg4 “%output%”
goto end
:help
echo “——————– - 使用方法 —————————”
echo “videoTool.bat logo.jpg input.mp3 output.avi”
echo “参数1: 输入图片”
echo “参数2: 输入音频”
echo “参数3: 输出视频”
goto end
:end
popd
pause