Ste*_*sky 0 audio video ffmpeg
我想合并两个视频(例如来自https://peach.blender.org/trailer-page/的iphone视频).视频将使用覆盖滤镜放置在背景图像上,第二个视频将在3秒后开始播放.
我需要音频混合.
这是我的代码:
ffmpeg \
-loop 1 -i background.png \
-itsoffset 0 -i trailer_iphone.m4v \
-itsoffset 3 -i trailer_iphone.m4v \
\
-y \
-t 36 \
-filter_complex "
[2:a] adelay=3000 [2delayed];
[1:a][2delayed] amerge=inputs=2 [audio];
[0][1:v] overlay=10:10:enable='between(t,0,33)' [lv1];
[lv1][2:v] overlay=10:300:enable='between(t,0,36)' [video]
" \
\
-threads 0 \
-map "[video]" -map "[audio]" \
-vcodec libx264 -acodec aac \
merged-video.mp4
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
[Parsed_overlay_3 @ 0x7fe892502ac0] [framesync @ 0x7fe892502b88] Buffer queue overflow, dropping.
Run Code Online (Sandbox Code Playgroud)
合并的视频有很多丢帧.
我知道这是其他一些发布此错误消息的帖子.但建议的解决方案对我不起作用.
我该如何解决这个问题?
FFmpeg正在丢弃帧,[2:v]因为处理[0][1:v]overlay时间超过帧丢弃阈值.
将fifo过滤器插入2:v以避免这种情况.
ffmpeg -loop 1 -i background.png
-itsoffset 0 -i trailer_iphone.m4v
-itsoffset 3 -i trailer_iphone.m4v
-t 36 -filter_complex
"[2:a]adelay=3000[2delayed];[1:a][2delayed]amerge=inputs=2[audio];
[0][1:v]overlay=10:10:enable='between(t,0,33)'[lv1];
[2:v]fifo[2f];[lv1][2f]overlay=10:300:enable='between(t,0,36)'[video]"
-threads 0 -map "[video]" -map "[audio]" -vcodec libx264 -acodec aac merged-video.mp4
Run Code Online (Sandbox Code Playgroud)
(对于立体声音频,它应该是adelay=3000|3000)
| 归档时间: |
|
| 查看次数: |
940 次 |
| 最近记录: |