java – 追加不同宽度,高度的视频文件

前端之家收集整理的这篇文章主要介绍了java – 追加不同宽度,高度的视频文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在构建一个用户可以录制截屏视频的应用程序.应用程序的一个组成部分是,可以暂时停止录制并在以后的任何时间恢复它(会话在服务器端维护).

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

16:38:03.916 [main] WARN com.xuggle.xuggler – Got error: picture is
not of the same width as this Coder
(../../../../../../../csrc/com/xuggle/xuggler/StreamCoder.cpp:1430)
Exception in thread “main” java.lang.RuntimeException: Failed to
encode video

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

解决方法

我不知道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

猜你在找的Java相关文章