頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


アプリの画面を録画する(2)AVAssetWriterではまった話

アプリの画面を録画する(1)ReplayKitをあきらめた話
↑この続き。ReplayKitじゃなく自前でなんとかしよう!と調べてみた。

ios - How do I export UIImage array as a movie? - Stack Overflow
[Objective-C] 複数枚の静止画から動画を生成する - Qiita
↑このあたりを参考にさせて頂いた。

ところが作成してカメラロールに保存された動画ファイル(のスクショ)は

ずれて作成された動画ファイルのスクリーンショット

↑こんな感じで何やらずれている。ただし一応動画にはなってる。

あー、こういうずれはきっと、、、と予想した原因がことごとくハズレで結構はまった。
pixel formatの設定やアルファ値の扱い、CVPixelBufferRefを得る方法、カメラロールへの保存方法まで調べていたのだが。
ようやくわかったのは元の静止画像の横幅のサイズが16の倍数でないとダメ、ということであった。

【Swift 3】UIImageの配列から動画を生成する【AVAssetWriter】 | うるおいらんど
↑こちらの記事に書いてはいるけど、リファレンス、ヘッダーに書いてるのは見つけられなかった。

ちなみに元画像の横幅サイズが16の倍数でなくても、コード上でソース画像の横幅を16の倍数にしておけばそれなりに表示はしてくれた。縦横比の問題なんかはあるだろうけど。
縦方向は何ピクセルでもいいみたい。高さ457pxの画像で試したけどちゃんと動いた。457は素数らしい。
スポンサーサイト




<< storyboardファイルを軽くするためxibを切り離す時のAutolayoutについて  TopPage  アプリの画面を録画する(1)ReplayKitをあきらめた話 >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
https://ringsbell.blog.fc2.com/tb.php/1308-5e2945e6




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.