gpt4 book ai didi

video - FFmpeg filter_complex ass 字幕和水印不能一起工作

转载 作者:行者123 更新时间:2023-12-04 22:50:57 24 4
gpt4 key购买 nike

我一直在尝试将 Logo 和字幕一起添加到视频中。但我无法管理它。 Logo 添加成功。但是输出视频中缺少字幕。 Logo 淡入淡出效果也不起作用。

ffmpeg -i '. $dest .' -i /www/otoconv/logo.png -filter_complex \ "[0:v][1:v]overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2:enable=between(t\,120\,130);[0:v]ass='.$ass_path.';[1:v]fade=out:st=30:d=1:alpha=1"  -c:v libx264 -crf 23 -preset ultrafast -threads 0  -c:a libfaac -movflags faststart '.$out

视频详情:
Duration: 00:44:51.44, start: 0.000000, bitrate: 2892 kb/s
Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709), 1280x720, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
Stream #0:1: Audio: ac3, 48000 Hz, stereo, fltp, 384 kb/s (default)

此外,当我开始编码 ffmpeg 输出是这样的
Output #0, mp4, to '/www/otoconv/media_subtitled/183502046hen.mp4':
Metadata:
encoder : Lavf56.3.100
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 23.98 fps, 24k tbn, 23.98 tbc
Metadata:
encoder : Lavc56.0.101 libx264
Stream #0:1: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 23.98 fps, 24k tbn, 23.98 tbc
Metadata:
encoder : Lavc56.0.101 libx264
Stream #0:2: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv444p, 308x93 [SAR 1:1 DAR 308:93], q=-1--1, 25 fps, 12800 tbn, 25 tbc
Metadata:
encoder : Lavc56.0.101 libx264
Stream #0:3: Audio: aac (libfaac) ([64][0][0][0] / 0x0040), 48000 Hz, stereo, s16, 128 kb/s (default)
Metadata:
encoder : Lavc56.0.101 libfaac
Stream mapping:
Stream #0:0 (h264) -> overlay:main (graph 0)
Stream #0:0 (h264) -> ass (graph 0)
Stream #1:0 (png) -> overlay:overlay (graph 0)
Stream #1:0 (png) -> fade (graph 0)
overlay (graph 0) -> Stream #0:0 (libx264)
ass (graph 0) -> Stream #0:1 (libx264)
fade (graph 0) -> Stream #0:2 (libx264)
Stream #0:1 -> #0:3 (ac3 (native) -> aac (libfaac))

过程中没有出现错误。提前致谢。

注意:我必须使用屁股字幕。

最佳答案

我认为:

ffmpeg -i '. $dest .' -i /www/otoconv/logo.png -filter_complex \
"[1:v]fade=out:st=30:d=1:alpha=1[tmp_fade]; \
[0:v][tmp_fade]overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2:enable=between(t\,120\,130)[tmp_overlay]; \
[tmp_overlay]ass='.$ass_path.'[out]" \
-map [out] -map 0:a -c:v libx264 -crf 23 -preset ultrafast -threads 0 -c:a libfaac -movflags faststart '.$out

应该工作得更好。基本上,您需要链接所有命令(好吧,从技术上讲,它是一个图表,您需要能够从所有输入节点到结束节点,但我不是数学家,因此可能缺乏这种解释)。我对 ffmpeg 的理解不足以告诉你为什么你的命令没有失败,但从你的文件的输出来看,我认为发生的事情是只有这个链才能进入最终视频:
Stream mapping:
Stream #0:0 (h264) -> overlay:main (graph 0)
Stream #1:0 (png) -> overlay:overlay (graph 0)
overlay (graph 0) -> Stream #0:0 (libx264)

这两个被计算但它们丢失了:
Stream #1:0 (png) -> fade (graph 0)
Stream #0:0 (h264) -> ass (graph 0)

我没有运行这个例子,所以我希望没有错字。

关于video - FFmpeg filter_complex ass 字幕和水印不能一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25564913/

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