📹

Flutterのimage_pickerで動画を選択すると圧縮されるのを無効にしたい。

2023/03/27に公開

Flutter の image_picker を使ってカメラロールから動画を選択して再生してみたところ、iOSのみ画質が劣化していたので調べたところ mp4 に変換されているだけではなく解像度が大幅に落とされてしまっていました。

別パッケージに移行するのは大変だったので image_picker plugin を改良して使うことにしました。

動画が圧縮されないようにするためには packages/image_picker/image_picker_ios/ios/Classes/FLTImagePickerPlugin.m
の 237 行目あたり、

imagePickerController.videoQuality = UIImagePickerControllerQualityTypeHigh;

の下に

imagePickerController.videoExportPreset = AVAssetExportPresetPassthrough;

を追記して videoExportPreset を AVAssetExportPresetPassthrough に設定します。

https://github.com/ioridev/plugins/commit/af9329f68682d77fdb942b3b72059dfaa039a53c

これで解像度がそのままに動画を選択できるようになりました。

参考:
https://github.com/flutter/flutter/issues/24954

続き
https://zenn.dev/ioridev/articles/7912d1319ac01b

Discussion