質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

900閲覧

AVVideoCompositionを回転して表示したい

Yeezy21

総合スコア21

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2021/04/21 06:23

編集2021/04/21 09:27

下記コードを参考に動画にCIFilterをかけてAVVideoCompositionを作成しました。

swift

1 2let playerItem = AVPlayerItem(asset: asset) 3let filter = CIFilter(name: "CIGaussianBlur")! 4let composition = AVVideoComposition(asset: asset, applyingCIFiltersWithHandler: { request in 5 6 // Clamp to avoid blurring transparent pixels at the image edges 7 let source = request.sourceImage.imageByClampingToExtent() 8 filter.setValue(source, forKey: kCIInputImageKey) 9 10 // Vary filter parameters based on video timing 11 let seconds = CMTimeGetSeconds(request.compositionTime) 12 filter.setValue(seconds * 10.0, forKey: kCIInputRadiusKey) 13 14 // Crop the blurred output to the bounds of the original image 15 let output = filter.outputImage!.imageByCroppingToRect(request.sourceImage.extent) 16 17 // Provide the filter output to the composition 18 request.finishWithImage(output, context: nil) 19}) 20 21player = AVPlayer(playerItem: playerItem) 22playerItem.videoComposition = composition 23playerLayer.player = player 24player.play() 25

AVMutableVideoCompositionの場合はrenderSizeとinstructionsを変更して動画の向きを回転させることができたのですが、AVVideoCompositionの場合、get-only propertyのためrenderSizeとinstructionsを変更することができません。

何かいい方法があれば教えてください。
現在横向きに表示されている動画を縦方向にしたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomato879241

2021/04/21 07:14

ただAVMutableComposition()のObjectを作って、それにビデオ・トラックを追加すればいいのではないでしょうか?
Yeezy21

2021/04/21 14:21

回答ありがとうございます! AVVideoCompostionのビデオトラックをどうやって追加すればいいでしょうか?
Yeezy21

2021/04/21 14:35

CIFilterをかけた際にAVVideoCompostionに変換されて、AVVideoCompositionからビデオトラックを取得する方法が分からないです。
Yeezy21

2021/04/22 06:06

AVMutableVideoComposition(asset: videoItem!.asset) でできました! ありがとうございます!
guest

回答1

0

自己解決

AVMutableVideoComposition(asset: videoItem!.asset)を使ってAVMutableVideoCompositionを作成することで対応できた。

投稿2021/04/23 14:51

Yeezy21

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問