托马斯的冰淇淋 2023-04-02 16:47 采纳率: 50%
浏览 155
已结题

ffmpeg 图片合成视频

ffmpeg 遇到一个问题 公司有一个需求,图片(图片要可以左右移动,图片是多张,图片要可以指定播放时长,例如:第一张图片播放时长3秒 第二张图片播放2秒 第三张x秒), 音频,合成mp4视频有会的吗?写ffmpeg 命令就可以了?

  • 写回答

6条回答 默认 最新

  • 「已注销」 2023-04-02 18:13
    关注

    引用gpt作答:
    使用ffmpeg可以将多张图片合成为一个视频,同时添加音频和字幕。

    以下是一个示例命令,其中包括将图片合成为视频、添加音频和字幕、调整图片位置和指定每张图片的播放时长:

    
    ffmpeg -y \
           -loop 1 \
           -i image1.png \
           -loop 1 \
           -i image2.png \
           -filter_complex \
               "[0:v]scale=w=1280:h=720,setsar=1[v0]; \
                [1:v]scale=w=1280:h=720,setsar=1[v1]; \
                [v0][v1]hstack=inputs=2[v]" \
           -map "[v]" \
           -t 10 \
           -vf "drawtext=text='Your Subtitle':fontfile=/path/to/font.ttf:fontsize=24:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2" \
           -i audio.mp3 \
           -shortest \
           output.mp4
    
    
    

    这个命令将图片 image1.png 和 image2.png 合成为一个视频,图片会水平拼接在一起。 -filter_complex 参数中的 setsar 参数用于设置像素比例,以避免图像变形。 -t 参数用于设置视频的持续时间,这里设置为10秒。 -vf 参数用于添加字幕,你需要将其中的 text、fontfile、fontsize 和 fontcolor 等参数替换成你想要的字幕内容和样式。 -i 参数用于添加音频, -shortest 参数用于将音频的持续时间设置为视频的持续时间。最后的输出文件为 output.mp4。

    如果你需要调整图片的位置,可以在 -filter_complex 参数中添加 x 和 y 参数,以指定图片的位置。例如,如果你想将第一张图片向左移动100个像素,可以将 -filter_complex 参数修改为:

    
    -filter_complex \
        "[0:v]scale=w=1280:h=720,setsar=1,x=100[v0]; \
         [1:v]scale=w=1280:h=720,setsar=1[v1]; \
         [v0][v1]hstack=inputs=2[v]"
    
    

    其中的 x 参数设置为 100。你可以根据需要修改这些参数。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 4月11日
  • 已采纳回答 4月3日
  • 修改了问题 4月2日
  • 专家修改了标签 4月2日
  • 展开全部

悬赏问题

  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多