sách gpt4 ai đã đi

python - ffmpeg 将多张图片放入不同的帧中

In lại 作者:行者123 更新时间:2023-12-04 23:35:01 40 4
mua khóa gpt4 Nike

我在 Python 中的数组看起来像这样 [['0.3251', '6.5712', '12.8174', '13.3979', '13.9784', '14.5357', '14.9537', '15.1394', '15.5109', '16.3236', '16.5094', '16.6951', '17.2524', '17.6704', '18.0419']]我需要将一个图像放在与 ffmpeg 的数组中完全相同的秒上。我怎样才能做到这一点?
例如,我想要一个带有歌曲的视频
第一次 0.3251s of the video i want to put img1第二6.5712s of the video i want to put img2等等。

1 Câu trả lời

不幸的是,我对 Python 知之甚少,但这里有一个 Windows 批处理文件示例,您如何使用 FFmpeg 创建带有图像和声音的视频。
此示例使用 mp3带声音的文件,三个 jpg带有图像和两个起点的文件:0.32516.5712 .将显示自输出视频开始到 0.3251 的第一张图像,第二张图片将从 0.3251 开始显示至6.5712 , 第三张图片将从 6.5712 开始显示到声音的尽头。您可以按照相同的模式轻松添加更多输入图像和起点(我在本文末尾提供了一个示例)。

ffmpeg.exe -i input.mp3 -loop 1 -i input1.jpg -loop 1 -i input2.jpg -loop 1 -i input3.jpg -filter_complex ^
^"[1:v]trim=duration=0.3251[a]; ^
[2:v]trim=start=0.3251:end=6.5712,setpts=PTS-STARTPTS[b]; ^
[a][b]concat[c]; ^
[3:v]trim=start=6.5712,setpts=PTS-STARTPTS[d]; ^
[c][d]concat[video]^" ^
-map [video]:v -map 0:a -c:v libx264 -crf 18 -c:a copy -shortest output.mp4
-i告诉 FFmpeg 使用以下输入作为下一个操作的流源。 input.mp3是带声音的输入文件。 inputX.jpg是带有图像的输入文件。 -loop告诉 FFmpeg 循环下一个输入图像。 -filter_complex告诉 FFmpeg 使用以下过滤器。 trim是用于设置特定图像时长的过滤器类型,可以与 duration 一起使用选项或使用 bắt đầukết thúc选项(这是您需要粘贴起点值的地方)。 concat是将视频的前两个部分合并为一个部分的过滤器类型,可用于下一个 concat手术。 -map告诉 FFmpeg 应该使用哪些流(视频和音频)来创建输出文件。 -c告诉 FFmpeg 应该使用哪些编解码器来编码视频和音频以创建输出文件。 -shortest告诉 FFmpeg 使用最短的输入流作为输出的持续时间(在这种情况下,它是带有声音的输入文件,因为所有图像都处于无限循环中)。 ^是 Windows 批处理特定字符,用于将一个长命令拆分为几行代码。可以全部删除 ^并改用一个长命令:
ffmpeg.exe -i input.mp3 -loop 1 -i input1.jpg -loop 1 -i input2.jpg -loop 1 -i input3.jpg -filter_complex "[1:v]trim=duration=0.3251[a]; [2:v]trim=start=0.3251:end=6.5712,setpts=PTS-STARTPTS[b]; [a][b]concat[c]; [3:v]trim=start=6.5712,setpts=PTS-STARTPTS[d]; [c][d]concat[video]" -map [video]:v -map 0:a -c:v libx264 -crf 18 -c:a copy -shortest output.mp4
如何添加下一张图片?
您需要再添加一张图像作为输入并更改当前过滤器集中的最后几行:
   [a][b]concat[c]; ^
[3:v]trim=start=6.5712,setpts=PTS-STARTPTS[d]; ^
[c][d]concat[video]^" ^
Và:
   [a][b]concat[c]; ^
[3:v]trim=start=6.5712:end=12.8174,setpts=PTS-STARTPTS[d]; ^
[c][d]concat[e]; ^
[4:v]trim=start=12.8174,setpts=PTS-STARTPTS[f]; ^
[e][f]concat[video]^" ^
字母 [Một] , [b] , [c]是变量的名称 - 您可以在此处使用任意字母组合,而不仅仅是一个字母。例如: [aa][ab]concat[ac]也可以工作, [video]也是此命令中使用的变量名。

关于python - ffmpeg 将多张图片放入不同的帧中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71007337/

40 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com