2013-10-04 40 views
4

我正在構建一個應用程序,用戶可以在其中錄製截屏視頻。應用程序的主要部分是,可以暫停記錄並隨時恢復(會話在服務器端進行維護)。附加不同寬度,高度的視頻文件

所以說當用戶開始錄製屏幕時,寬度和高度是: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

什麼是解決這一問題的最佳途徑。用戶可以在不同的寬度和高度的屏幕上。如何合併(或任何其他替代品,可能附加)不同寬度和高度的視頻文件?

回答

2

我不知道有關xuggler,但使用FFMpeg我可以使用以下命令序列以不同分辨率連接視頻。 對於每一個視頻我用下面的命令

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

和生成我用下面的命令來Concat的所有視頻

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

好回答所有out.ts文件後,幫我 –

+0

在你的第一個命令,你是否將任何文件轉換成1280 * 720 TS文件。因此你可以連接具有相同分辨率的文件,對吧? –

+0

是@PrasannaSundar – Spynet

相關問題