ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

flutter等跨平台app上架appStore的13和6.5英寸图片和视频获取

flutter等跨平台app上架appStore的13和6.5英寸图片和视频获取

问题:一些flutter库不支持模拟器上使用,如xlog、Logan等。以及涉及到硬件,如相机、蓝牙等功能,用不了

前置:安卓手机一台,adb工具,scrcpy工具,ffmpeg(使用pr等剪辑的话则不需要)

原理:安卓可以通过adb工具设置不同的分辨率和像素密度,之后通过adb和scrcpy工具获取即可

1. 设置分辨率

# 设置6.5英寸分辨率和像素密度 adb shell wm size 1242x2688 && adb shell wm density 480 # 或 adb shell "wm size 1242x2688; wm density 480" # 设置13英寸分辨率和像素密度 adb shell wm size 2064x2752 && adb shell wm density 320 # 或 adb shell "wm size 2064x2752; wm density 320" # 还原设备分辨率和像素密度 adb shell "wm size reset; wm density reset"

2. 截图保存在电脑上

adb exec-out screencap -p > xxx.png

3. 视频录屏并保存在电脑上

参考App 预览规范 - App 信息 - 参考 - App Store Connect - 帮助 - Apple Developer,视频限制有点多,主要是需要注意以下条件:

  • 时长,15-30s
  • 比特率,10-12Mbps(实际测试,没啥问题)
  • 最大帧率,30帧/秒

先通过scrcpy录制ctrl+c结束

# 先直接录制。--audio-codec=aac是为了让pr等剪辑软件识别到音轨,同时也为了满足苹果的音轨格式需求 scrcpy --audio-codec=aac --record 1.mp4 # 如果还想要加上麦克风的录音,则命令是 scrcpy --audio-source=mic --audio-codec=aac --record 1.mp4

如果不剪辑的话,可以直接通过ffmpeg工具格式化一下

# 6.5英寸的录屏 ffmpeg -y -i 1.mp4 \ -vf "fps=30,scale=886:1920:force_original_aspect_ratio=decrease,pad=886:1920:(ow-iw)/2:(oh-ih)/2:color=black,setsar=1" \ -c:v libx264 -profile:v high -level 4.0 -tag:v avc1 -pix_fmt yuv420p \ -r 30 -fps_mode cfr -g 30 -b:v 10M -maxrate 12M -bufsize 20M \ -c:a aac -b:a 256k -ac 2 -ar 44100 \ -movflags +faststart \ 1_output.mp4 # 13英寸的录屏 ffmpeg -y -i 1.mp4 \ -vf "fps=30,scale=1200:1600:force_original_aspect_ratio=decrease,pad=1200:1600:(ow-iw)/2:(oh-ih)/2:color=black,setsar=1" \ -c:v libx264 -profile:v high -level 4.0 -tag:v avc1 -pix_fmt yuv420p \ -r 30 -fps_mode cfr -g 30 -b:v 10M -maxrate 12M -bufsize 20M \ -c:a aac -b:a 256k -ac 2 -ar 44100 \ -movflags +faststart \ 1_output.mp4

如果用pr剪辑,则需要按照如下设置导出

返回列表