#6111 closed defect (duplicate)
macOS AVFoundation screen capture looks awful but FaceTime HD Cam capture fine
Reported by: | Patrick Kennedy | Owned by: | Thilo Borgmann |
---|---|---|---|
Priority: | normal | Component: | avdevice |
Version: | git-master | Keywords: | avfoundation |
Cc: | mixelpix@mac.com | Blocked By: | |
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Per https://trac.ffmpeg.org/wiki/Capture/Desktop#OSX
I am using AVfoundation (https://ffmpeg.org/ffmpeg-devices.html#avfoundation) to capture video and the following capture of the desktop results in an unuseable picture:
$ ffmpeg -f avfoundation -i "1:none" desktop.mov ffmpeg version 3.2.2 Copyright (c) 2000-2016 the FFmpeg developers built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
As a comparison, a similar command for capturing the internal FaceTime HD Camera results in a useable picture:
$ ffmpeg -f avfoundation -i "0:none" facetime_cam.mov
NOTE: 3.2.2 is not an option in the New Ticket >> Version pulldown menu
Attachments (4)
Change History (17)
by , 6 years ago
Attachment: | desktop.jpg added |
---|
by , 6 years ago
Attachment: | camera.jpg added |
---|
comment:1 by , 6 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
comment:3 by , 6 years ago
Keywords: | avfoundation added |
---|---|
Resolution: | invalid |
Status: | closed → reopened |
Ok this is another problem sorry, reopening.
comment:4 by , 6 years ago
Owner: | set to |
---|---|
Status: | reopened → open |
follow-up: 6 comment:5 by , 6 years ago
Please send a log for
$ ffmpeg -f avfoundation -list_devices true -i ""
What model is it?
For a workaround you might try to specify another pixel format.
comment:6 by , 6 years ago
Replying to thilo.borgmann:
Please send a log for
$ ffmpeg -f avfoundation -list_devices true -i ""
$ ffmpeg -f avfoundation -list_devices true -i "" ffmpeg version 3.2.2 Copyright (c) 2000-2016 the FFmpeg developers built with Apple LLVM version 8.0.0 (clang-800.0.42.1) configuration: --prefix=/usr/local/Cellar/ffmpeg/3.2.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-chromaprint --enable-ffplay --enable-frei0r --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libebur128 --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopus --enable-librtmp --enable-librubberband --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtesseract --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg --enable-libzmq --enable-opencl --enable-openssl --enable-lzma --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/2.1.2/include/openjpeg-2.1 --enable-nonfree --enable-vda libavutil 55. 34.100 / 55. 34.100 libavcodec 57. 64.101 / 57. 64.101 libavformat 57. 56.100 / 57. 56.100 libavdevice 57. 1.100 / 57. 1.100 libavfilter 6. 65.100 / 6. 65.100 libavresample 3. 1. 0 / 3. 1. 0 libswscale 4. 2.100 / 4. 2.100 libswresample 2. 3.100 / 2. 3.100 libpostproc 54. 1.100 / 54. 1.100 [AVFoundation input device @ 0x7fc2db40f240] AVFoundation video devices: [AVFoundation input device @ 0x7fc2db40f240] [0] FaceTime HD Camera (Built-in) [AVFoundation input device @ 0x7fc2db40f240] [1] Capture screen 0 [AVFoundation input device @ 0x7fc2db40f240] [2] Capture screen 1 [AVFoundation input device @ 0x7fc2db40f240] AVFoundation audio devices: [AVFoundation input device @ 0x7fc2db40f240] [0] Built-in Microphone : Input/output error $
What model is it?
per Sys Info:
FaceTimeHD Camera (Built-in):
Model ID: UVC Camera VendorID_1452 ProductID_34064
Unique ID: 0x1a11000005ac8510
For a workaround you might try to specify another pixel format.
Thank you for the suggestion. I am just getting started reading the documentation and have purchased Frantisek Korbel's book. Can you recommend a capture setting? I have to step away from the computer for about 8 hours but will check back later tonight - thanks again!
comment:7 by , 6 years ago
Not sure why ffmpeg -f avfoundation -list_devices true -i ""
results in an i/o error? I did have an odd experience installing ffmpeg with Homebrew - perhaps this is related? I've documented it here: http://apple.stackexchange.com/questions/270842/error-with-homebrew-install-of-ffmpeg-with-all-options
Also, with the install there was a "caveat" message re: Homebrew's Python install while "Pouring" libcaca-0.99b19.sierra.bottle.1.tar.gz
Does avfoundation make use of Python at runtime?
Also, "Pouring" libsamplerate-0.1.9.sierra.bottle.tar.ga generated a caveat msg about needing libsndfile
Thanks again!
follow-ups: 9 10 comment:8 by , 6 years ago
Replying to mixelpix:
NOTE: 3.2.2 is not an option in the New Ticket >> Version pulldown menu
That's because only current FFmpeg git head is supported on this bug tracker (even more so for macos where no release support exists). Please test it and provide your command line together with the complete, uncut console output to make this a valid ticket.
comment:9 by , 6 years ago
Replying to cehoyos:
Replying to mixelpix:
NOTE: 3.2.2 is not an option in the New Ticket >> Version pulldown menu
That's because only current FFmpeg git head is supported on this bug tracker (even more so for macos where no release support exists).
Sorry, I was unaware that macOS has no release support.
Apologies, I don't know what you mean by "FFmpeg git head"
Please test it
I used Homebrew to install FFmpeg - do you mean I should reinstall with the --HEAD option (per https://trac.ffmpeg.org/wiki/CompilationGuide/MacOSX#ffmpegthroughHomebrew) and retry the capture?
by , 6 years ago
Attachment: | desktop.2.jpg added |
---|
by , 6 years ago
Attachment: | desktop.3.jpg added |
---|
comment:10 by , 6 years ago
Replying to cehoyos:
Please test it and provide your command line together with the complete, uncut console output to make this a valid ticket.
I've reinstalled FFmpeg with the --HEAD option:
$ brew install ffmpeg --HEAD
...and this is the entire console output from capturing my desktop with AV Foundation
$ ffmpeg -f avfoundation -i "1:none" desktop.mov ffmpeg version git-2017-01-31-3405d6c Copyright (c) 2000-2017 the FFmpeg developers built with Apple LLVM version 8.0.0 (clang-800.0.42.1) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD-3405d6c --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --disable-lzma --enable-vda libavutil 55. 45.100 / 55. 45.100 libavcodec 57. 75.100 / 57. 75.100 libavformat 57. 66.101 / 57. 66.101 libavdevice 57. 2.100 / 57. 2.100 libavfilter 6. 72.100 / 6. 72.100 libavresample 3. 2. 0 / 3. 2. 0 libswscale 4. 3.101 / 4. 3.101 libswresample 2. 4.100 / 2. 4.100 libpostproc 54. 2.100 / 54. 2.100 [avfoundation @ 0x7fc803802600] Selected pixel format (yuv420p) is not supported by the input device. [avfoundation @ 0x7fc803802600] Supported pixel formats: [avfoundation @ 0x7fc803802600] uyvy422 [avfoundation @ 0x7fc803802600] yuyv422 [avfoundation @ 0x7fc803802600] nv12 [avfoundation @ 0x7fc803802600] 0rgb [avfoundation @ 0x7fc803802600] bgr0 [avfoundation @ 0x7fc803802600] Overriding selected pixel format to use uyvy422 instead. Input #0, avfoundation, from '1:none': Duration: N/A, start: 87118.887667, bitrate: N/A Stream #0:0: Video: rawvideo (UYVY / 0x59565955), uyvy422, 1366x768, 30 tbr, 1000k tbn, 1000k tbc No pixel format specified, yuv422p for H.264 encoding chosen. Use -pix_fmt yuv420p for compatibility with outdated media players. [libx264 @ 0x7fc803834e00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX [libx264 @ 0x7fc803834e00] profile High 4:2:2, level 3.2, 4:2:2 8-bit [libx264 @ 0x7fc803834e00] 264 - core 148 r2748 97eaef2 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mov, to 'desktop.mov': Metadata: encoder : Lavf57.66.101 Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv422p, 1366x768, q=-1--1, 30 fps, 15360 tbn, 30 tbc Metadata: encoder : Lavc57.75.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1 Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264)) Press [q] to stop, [?] for help frame= 382 fps= 29 q=-1.0 Lsize= 951kB time=00:00:12.63 bitrate= 616.5kbits/s dup=6 drop=0 speed=0.953x video:945kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.554439% [libx264 @ 0x7fc803834e00] frame I:2 Avg QP:19.70 size:204812 [libx264 @ 0x7fc803834e00] frame P:98 Avg QP:22.37 size: 5188 [libx264 @ 0x7fc803834e00] frame B:282 Avg QP:33.66 size: 175 [libx264 @ 0x7fc803834e00] consecutive B-frames: 1.0% 1.0% 1.6% 96.3% [libx264 @ 0x7fc803834e00] mb I I16..4: 12.7% 44.1% 43.2% [libx264 @ 0x7fc803834e00] mb P I16..4: 0.2% 0.6% 0.6% P16..4: 7.3% 1.1% 0.8% 0.0% 0.0% skip:89.5% [libx264 @ 0x7fc803834e00] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 2.4% 0.1% 0.0% direct: 0.0% skip:97.4% L0:25.9% L1:73.6% BI: 0.5% [libx264 @ 0x7fc803834e00] 8x8 transform intra:44.7% inter:72.7% [libx264 @ 0x7fc803834e00] coded y,uvDC,uvAC intra: 71.4% 83.6% 81.3% inter: 0.7% 1.6% 0.3% [libx264 @ 0x7fc803834e00] i16 v,h,dc,p: 3% 91% 0% 6% [libx264 @ 0x7fc803834e00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 5% 84% 8% 0% 0% 0% 2% 0% 1% [libx264 @ 0x7fc803834e00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 4% 73% 9% 0% 1% 0% 9% 0% 3% [libx264 @ 0x7fc803834e00] i8c dc,h,v,p: 35% 62% 2% 1% [libx264 @ 0x7fc803834e00] Weighted P-Frames: Y:3.1% UV:3.1% [libx264 @ 0x7fc803834e00] ref P L0: 64.7% 9.2% 22.6% 3.0% 0.5% [libx264 @ 0x7fc803834e00] ref B L0: 83.8% 14.2% 2.0% [libx264 @ 0x7fc803834e00] ref B L1: 95.7% 4.3% [libx264 @ 0x7fc803834e00] kb/s:607.85 $
...and this is the result:
follow-ups: 12 13 comment:11 by , 6 years ago
Resolution: | → duplicate |
---|---|
Status: | open → closed |
Version: | unspecified → git-master |
This is a duplicate of ticket #5654.
Thanks for a comprehensive report.
However, just check your output codec parameters and tune for quality as you like. The default can look quite bad. See the docs for details.