我正在用头撞墙试图添加启动画面。这就是我正在做的事情:
- 将静态图像转换为带有静音音频流的“ts”文件
ffmpeg -loop 1 -i image.png -c:v libx264 -t 10 -c:a libvo_aacenc -b:a 160k -bsf:v h264_mp4toannexb -f mpegts -crf 32 image.ts
- 现在,将原始视频也转换为“ts”文件
ffmpeg -i video.mp4 -c:v libx264 -c:a aac -b:a 160k -bsf:v h264_mp4toannexb -f mpegts -crf 32 video.ts
- 现在,合并 2 个“ts”文件
ffmpeg -i "concat:image.ts|video.ts" -c:v libx264 -c:a aac -b:a 160k -bsf:v -y output.mp4
问题:
输出文件生成得很好,但音频完全丢失。步骤 # 3 中生成的“output.mp4”视频实际上具有音轨,但闪屏视频已静音音频。
我也无法添加过渡。我对此进行了很多研究,但无法添加它,请帮忙。
我真的很感激你的想法!谢谢
最佳答案
当使用concat协议(protocol)或demuxer时,所有文件必须包含相应的流。在这种情况下,您的启动文件没有音频。让我们添加一个。
ffmpeg -loop 1 -i image.png -f lavfi -i anullsrc -t 10 -pix_fmt yuv420p -c:v libx264 -crf 32 -ac 2 -ar 48000 -c:a aac -b:a 160k -f mpegts image.ts
ffmpeg -i video.mp4 -pix_fmt yuv420p -c:v libx264 -crf 32 -ac 2 -ar 48000 -c:a aac -b:a 160k -f mpegts video.ts
ffmpeg -i "concat:image.ts|video.ts"-c 复制输出.mp4
(如果libvo_aacenc
对你有用,那么你的ffmpeg太旧了。几年前就删除了对它的支持。升级到v4.3)
如果您希望启动图像淡出,请更改为
ffmpeg -loop 1 -i image.png -f lavfi -i anullsrc -t 10 -vf "fade=out:st=9:d=1"-c:v libx264 -pix_fmt yuv420p -crf 32 -ac 2 -ar 48000 -c:a aac -b:a 160k -f mpegts image.ts
这将使启动图像在 9 到 10 秒的时间范围内淡出。
(注:我添加了 pix_fmt 选项以确保输出广泛兼容)
关于c# - 使用 FFMPEG 添加闪屏到视频开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63481882/