簡體   English   中英

Grafika和OpenGL以方形在Android上錄制視頻

[英]Grafika and OpenGL to record a video on android in square shape

我目前正在嘗試以方形錄制視頻並創建一個輸出為.mp4。 這似乎確實具有挑戰性。 我嘗試了不同的方法,包括:OnPreviewFrame和FFMpeg。 但是從來沒有得到令人滿意的結果。 今天我找到了格拉菲卡。 這似乎是正確的方法。 但是由於該守則的復雜性,我現在陷入困境。 使用示例:CameraCaptureActivity.java,我設法錄制了視頻。 但是它的形狀是矩形而不是正方形。 此外,相機旋轉了90度。 我已經在嘗試操縱某些參數,但從未獲得好的視頻。 一些被擠壓等等。

有人知道我需要在Grafikas示例中更改哪些參數才能獲得正確的結果嗎? 最后,我的Android手機的攝像頭應錄制Vine或Instagram之類的視頻。

謝謝你的幫助!

一些注意事項:

  1. CameraCaptureActivity很復雜,因為它試圖使用GLSurfaceView(最初是回答這個問題 )。 ContinuousCaptureActivity是更好的選擇。

  2. 通常,無法通過設置Camera參數將攝像機預覽限制為任意形狀。 您必須接受它提供給您的圖像或視頻幀,然后對其進行修改以使其具有所需的外觀。 在您的情況下,這意味着剝離頂部/底部或左側/右側邊緣。

  3. 我很確定Instagram不再嚴格地是正方形。 因此,您可能會落后於時代。 :-)

Grafika代碼通過將相機輸入到SurfaceTexture中來工作,這會將相機幀轉換為GLES紋理。 然后,您可以根據需要渲染紋理。 通過選擇正方形形狀並修改紋理坐標,您可以擁有正方形視頻。

最好的起點是“相機中的紋理”活動。 請特別注意“縮放”功能,該功能可調整紋理坐標以選擇圖像的內部。 您可以修改ScaledDrawable2d#getTexCoordArray()來映射框架的內部,並修改渲染代碼以使用方形四邊形。 將其饋入視頻編碼器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM