我有两个类似大小,FPS和持续时间的.OGG文件。我的目标是使用FFMPEG将它们组合成并排演示。为此我尝试了以下cmd:
ffmpeg -i subject.ogg -vf“[in] pad = 3 * iw:3 * ih [left]; movie = clinician.ogg [right]; [left] [right] overlay = 100:0 [out ]“combined.ogg
可以说所得视频不可播放。在组合过程中,FFMPEG会打印许多错误,如:
[Parsed_overlay_2 @ 0x1eb7d3e0]缓冲区队列溢出,丢弃
这告诉我什么?
注意:
那么 - 我的参数有什么问题以及我在做什么导致这些FFMPEG错误?
编辑:
ffmpeg -i clinician.ogg
输入#0,ogg,来自'clinician.ogg':
持续时间:00:05:20.98,开始时间:0.001000,比特率:2273 kb / s
流#0:0:视频:theora,yuv420p,500x500 [SAR 1:1 DAR 1:1],1k tbr,1k tbn,1k tbc
元数据:
服务器:Red5服务器1.0.0 RC1 $ Rev:4193 $
CANSEEKTOEND:真实的 编码器:Lavf54.31.100
流#0:1:音频:vorbis,8000 Hz,立体声,s16
元数据:
服务器:Red5服务器1.0.0 RC1 $ Rev:4193 $
CANSEEKTOEND:真实的 编码员:Lavf54.31.100
ffmpeg -i subject.ogg
输入#0,ogg,来自'subject.ogg':
持续时间:00:05:17.60,开始:0.001000,比特率:1341 kb / s
流#0:0:视频:theora,yuv420p,300x300 [SAR 1:1 DAR 1:1],83.33 tbr,1k tbn,1k tbc
元数据:
服务器:Red5服务器1.0.0 RC1 $ Rev:4193 $
CANSEEKTOEND:真实的 编码器:Lavf54.31.100
流#0:1:音频:vorbis,8000 Hz,立体声,s16
元数据:
服务器:Red5服务器1.0.0 RC1 $ Rev:4193 $
CANSEEKTOEND:真实的 编码员:Lavf54.31.100
答案 0 :(得分:2)
转换为x264是一个很好的建议。这似乎扭转了局势。
以下是后人的一些注意事项:
ffmpeg -y -i subject_s_2242_r_1658.flv -async 1 -ac 2 -strict -2 -acodec vorbis \
-c:v libx264 -preset slow -crf 22 subject.mkv
ffmpeg -y -i clinician.mkv -vf:“movie = subject.mkv [right]; pad = iw * 2:ih:0:0 [left]; [left] [right] overlay = 500:0 “\
-filter_complex“amovie = clinician.mkv [l]; amovie = subject.mkv [r]; [l] [r] amerge”final.mkv
我无法安装AVISYNTH(在CentOS 6.2上运行),但它看起来确实是一个很好的解决方案。
答案 1 :(得分:0)
使用Avisynth执行此操作可能最简单。
制作以下input.avs文件:
a = AviSource("first.avi")
b = AviSource("second.avi")
StackHorizontal(a,b)
然后运行ffmpeg -i input.avs output.avi ...以及您想要的任何其他选项。
编辑:另一种方法(不是快速)是将两个文件中的帧转储到png并将它们与ImageMagick(例如montage
)或类似的图像处理工具结合起来。
#!/bin/bash
ffmpeg -i first.avi first_%05d.png
ffmpeg -i second.avi second_%05d.png
for file in first_*.png ; do montage ${file} ${file/first/second} ${file/first/output} ; done
ffmpeg -i output_%05d.png output.avi
这实际上可以让你进行更多的图像处理而不仅仅是并排,你可以做任意比例/叠加/背景/等。问题是来自一个文件的第N帧可能与来自另一个文件的第N帧完全不同,如果它们是可变帧率,这是AviSynth为您完美处理的。如果剪辑是恒定的帧速率,那不是问题。
通过制作包含这两者的新剪辑(无论是否通过avisynth)来组合剪辑需要重新压缩视频,并降低视频质量/增加文件大小。
我不确定如何将ogg文件读入Avisynth,但可能有一种方法。检查the FAQ on input formats。
旁注:theora / ogg的选择很奇怪。更好:mp4容器中的H.264。