gpt4 book ai didi

image - 将视频剪辑与静态图像连接会导致缓冲区错误

转载 作者:行者123 更新时间:2023-12-04 23:07:44 25 4
gpt4 key购买 nike

我正在尝试使用 MOVIE.mp4 将 15 秒的视频剪辑( IMAGE.jpg )与 5 秒(无音频)的图像( FFmpeg )连接起来.

我的过滤图似乎有问题,尽管我无法确定是什么。我整理的命令如下:

ffmpeg \
-loop 1 -t 5 -I IMAGE.jpg \
-t 15 -I MOVIE.mp4 \
-filter_complex "[0:v]scale=480:640[1_v];anullsrc[1_a];[1:v][1:a][1_v][1_a]concat=n=2:v=1:a=1[out]" \
-map "[out]" \
-strict experimental tst_full.mp4

不幸的是,这似乎产生了一些奇怪的结果:
  • 在我的个人电脑(FFmpeg 4.2.1)上,它正确地将电影与静态图像连接起来;但是,静态图像会持续无限长的时间。 (进入 ctrl-C 后,电影仍然可以观看,但长度非常长——例如 35 分钟——取决于我何时中断进程。)
  • 在我需要进行最终视频处理 ( FFmpeg 2.8.15-0ubuntu0.16.04.1 ) 的远程机器上,命令不会终止,而是出现以下形式的级联错误:
  • Past duration 0.611458 too large
    ...
    [output stream 0:0 @ 0x21135a0] 100 buffers queued in output stream 0:0, something may be wrong.
    ...
    [output stream 0:0 @ 0x21135a0] 100000 buffers queued in output stream 0:0, something may be wrong.

    我无法找到很多文档来说明这些错误的含义,所以我不知道出了什么问题。

    最佳答案

    Gyan指出,您只需添加atrim到您的音频:
    anullsrc,atrim=0:5[silent-audio]
    而不是 scale你可以使用 scale2refsetsar自动使您的图像与视频具有相同的大小和纵横比。

    ffmpeg \
    -loop 1 -t 5 -i IMAGE.jpg \
    -t 15 -i MOVIE.mp4 \
    -filter_complex "[0:v][1:v]scale2ref[img][v];[img]setsar=1[img]; \
    anullsrc,atrim=0:5[silent-audio];[v][1:a][img]
    [silent-audio]concat=n=2:v=1:a=1[out]" \
    -map "[out]" \
    -strict experimental tst_full.mp4

    或者,您可以使用 anullsrc作为第三个输入:
    ffmpeg \
    -t 15 -i MOVIE.mp4 \
    -loop 1 -t 5 -i IMAGE.jpg \
    -f lavfi -t 5 -i anullsrc \
    -filter_complex "[1:v][0:v]scale2ref[img][v];\
    [img]setsar=1[img];[v][0:a][img][2:a]concat=n=2:v=1:a=1[out]" \
    -map "[out]" \
    -strict experimental tst_full.mp4

    关于image - 将视频剪辑与静态图像连接会导致缓冲区错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60232783/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com