You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
So on iOS every practical live-stream format is a per-frame screenshot loop, which tops out around 4–5 FPS on an iPhone 17 Pro at full resolution (measured while verifying #130) and pays a codec pass per frame. Android's h264 leg streams at the device's native variable frame rate with no per-frame encode on our side.
The plumbing already exists
record-video has driven native H.264 on iOS since #52/#70:
record-video points that at a file. stream-video --format h264 would point the same configuration at stdout, which is what the Android leg already does with screenrecord's Annex B output — and SimUseVideo already has the host-side Annex B parsing from the recording work.
This would also close the "h264 is Android-only for now" caveat in the 0.12.0 changelog and make the stream-video format set symmetric across platforms.
Scope notes
--fps semantics: iOS record-video honours a constant --fps, so the stream can too (unlike Android's variable rate).
Worth checking whether ffplay -f h264 -probesize 32 -fflags nobuffer - (the pipeline the README documents for Android) works unchanged against the iOS output.
Gap
stream-video's format matrix is asymmetric:mjpeg/raw/ffmpegscreencaplooph264adb screenrecordpassthroughbgraSo on iOS every practical live-stream format is a per-frame screenshot loop, which tops out around 4–5 FPS on an iPhone 17 Pro at full resolution (measured while verifying #130) and pays a codec pass per frame. Android's
h264leg streams at the device's native variable frame rate with no per-frame encode on our side.The plumbing already exists
record-videohas driven native H.264 on iOS since #52/#70:record-videopoints that at a file.stream-video --format h264would point the same configuration at stdout, which is what the Android leg already does withscreenrecord's Annex B output — andSimUseVideoalready has the host-side Annex B parsing from the recording work.This would also close the "h264 is Android-only for now" caveat in the 0.12.0 changelog and make the
stream-videoformat set symmetric across platforms.Scope notes
--fpssemantics: iOSrecord-videohonours a constant--fps, so the stream can too (unlike Android's variable rate).streamBGRAalready streams fromFBVideoStreamand handles startup/mid-stream failure detection (Surface BGRA stream-video failures as non-zero exit #21); that error taxonomy is the model to follow.ffplay -f h264 -probesize 32 -fflags nobuffer -(the pipeline the README documents for Android) works unchanged against the iOS output.