附加不同宽度,高度的视频文件

时间:2013-10-04 11:11:38

标签: java ffmpeg xuggler

我正在构建一个用户可以录制截屏视频的应用程序。应用程序的一个组成部分是,可以暂停记录并在以后的任何时间恢复它(会话在服务器端维护)。

所以当用户开始录制屏幕时,宽度和高度为:1024 * 768。使用xuggler(ffmpeg的java包装器),我能够生成一个视频。但后来他说他是在一个不同的系统,并希望恢复屏幕投射,然后分辨率更改为1080 * 720.在这个阶段,我单独记录它,然后尝试合并两个文件。但因为宽度和宽度身高不一样,我得到以下例外:

  

16:38:03.916 [main] WARN com.xuggle.xuggler - 收到错误:图片是   与编码器的宽度不同   (../../../../../../../csrc/com/xuggle/xuggler/StreamCoder.cpp:1430)   线程“main”java.lang.RuntimeException中的异常:失败   编码视频

解决此问题的最佳方法是什么?用户可以在屏幕上具有不同的宽度和高度。如何合并(或任何其他替代方案,可能附加)不同宽度和高度的视频文件?

1 个答案:

答案 0 :(得分:4)

我不知道xuggler,但是使用FFMpeg我能够使用以下命令序列以不同的分辨率连接视频。 对于每个视频,我使用以下命令

ffmpeg -i input(n).mp4 -c copy -vbsf h264_mp4toannexb -f mpegts -s 1280*720 out(n).ts

在生成所有out.ts文件后,我使用以下命令连接所有视频

ffmpeg -i "concat:out1.ts|out2.ts" -c:v libx264 -strict experimental -bsf:a aac_adtstoasc -ar 48000 -r 20 output.mp4