Opened 3 years ago

Last modified 3 years ago

#9295 new defect

avfoundation macOS has wrong resolution 2880x1800 should be 2560x1600

Reported by: Harald Rudell Owned by:
Priority: normal Component: avdevice
Version: unspecified Keywords: avfoundation
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description (last modified by Harald Rudell)

Computer is MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports)
— the M1 right next to it
Display native resolution is 2560x1600

BUG:
avfoundation produces somewhat fuzzy video at resolution 2880x1800
If output video is resized back to 2560x1600, it’s super-fuzzy
other avfoundation device options seem ineffective

EXPEXTED:
Sharp image of Native resolution 2560x1600

Here is the code line: https://github.com/FFmpeg/FFmpeg/blob/master/libavdevice/avfoundation.m#L404

Note: device name differs, could be "Capture screen 0"

How to reproduce:

date && sw_vers && sysctl -n hw.model && ffmpeg \
  -t 1 \
  -pixel_format nv12 \
  -framerate 30 \
  -f avfoundation -i "Capture screen 1":none \
  -f null -
Sat Jun 19 20:05:00 PDT 2021
ProductName:    macOS
ProductVersion: 11.4
BuildVersion:   20F71
MacBookPro16,2
ffmpeg version 4.4 Copyright (c) 2000-2021 the FFmpeg developers
  built with Apple clang version 12.0.0 (clang-1200.0.32.29)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.4_1 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
[AVFoundation indev @ 0x7fbf01904ac0] Configuration of video device failed, falling back to default.
[avfoundation @ 0x7fbf03808200] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, avfoundation, from 'Capture screen 1:none':
  Duration: N/A, start: 505496.222500, bitrate: N/A
  Stream #0:0: Video: rawvideo (NV12 / 0x3231564E), nv12, 2880x1800, 1000k tbr, 1000k tbn, 1000k tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':
  Metadata:
    encoder         : Lavf58.76.100
  Stream #0:0: Video: wrapped_avframe, nv12(progressive), 2880x1800, q=2-31, 200 kb/s, 1000k fps, 1000k tbn
    Metadata:
      encoder         : Lavc58.134.100 wrapped_avframe
frame=   30 fps= 30 q=-0.0 Lsize=N/A time=00:00:00.96 bitrate=N/A speed=0.959x    
video:16kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.

Change History (2)

comment:1 by Harald Rudell, 3 years ago

Description: modified (diff)

comment:2 by Carl Eugen Hoyos, 3 years ago

Keywords: avfoundation added

Is this issue reproducible with current FFmpeg git head, the only version supported on this bug tracker?

Note: See TracTickets for help on using tickets.