I have 2 trail cameras pointing up and down my backyard trail, and they frequently capture awesome footage like this:
https://www.youtube.com/watch?v=TYQj1fcSQJE <https://www.youtube.com/watch?v=TYQj1fcSQJE> You can actually hear her bonk him on the head!! Assembling these clips in Da Vinci Resolve allows me to visually align the clips exactly, but before I do that I need to generate still images from the first frames of TrailUp.mp4 and TrailDown.mp4, e.g. TrailUpStill.jpg and TrailDownStill.jpg, to fill in the timeline gap when one video needs to start earlier than the other. See the above video where the "downhill" timestamp doesn't start changing until a few seconds in. I’d been creating these stills on my Mac by opening the MP4s in QuickTime Player, copying the first frame, pasting into a new document in Preview, and saving as a JPG, which is all tedious manual labor. I thought maybe I could semi-automate this by doing this in ffmpeg: ffmpeg -i TrailDown.mp4 -vframes 1 TrailDownStill.jpg This works, but the resulting jpg looks slightly different than the jpg produced by Preview. The brightness is different. I also took a screen capture of QuickTime Player and exported that as a jpg, and it look almost exactly the copy/paste into Preview, and slightly unlike that produced by ffmpeg. When I sequence these files into Resolve, the jpg produced via Preview looks exactly like I’ve paused the MP4 (which is the effect I want), whereas the jpg produced by ffmpeg has a slightly different brightness than the video, so there’s a discontinuity when it’s sequenced: https://www.kan.org/pictures/TrailDownStillQTPreview.jpg <https://www.kan.org/pictures/TrailDownStillQTPreview.jpg> https://www.kan.org/pictures/TrailDown.mp4 <https://www.kan.org/pictures/TrailDown.mp4> https://www.kan.org/pictures/TrailDownStillffmpeg.jpg <https://www.kan.org/pictures/TrailDownStillffmpeg.jpg> https://www.kan.org/pictures/TrailDownStillQTScreenCap.jpg <https://www.kan.org/pictures/TrailDownStillQTScreenCap.jpg> Is there a flag I need to set in ffmpeg to get a jpg that looks like what Preview produces? Is this error related to my issue? "[swscaler @ 0x112d97000] deprecated pixel format used, make sure you did set range correctly” console output follows. Thanks! ffmpeg -i TrailDown.mp4 -vframes 1 TrailDownStill.jpg ffmpeg version N-100466-g29cef1bcd6-tessus https://evermeet.cx/ffmpeg/ Copyright (c) 2000-2020 the FFmpeg developers built with Apple clang version 11.0.0 (clang-1100.0.33.17) configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay libavutil 56. 62.100 / 56. 62.100 libavcodec 58.115.102 / 58.115.102 libavformat 58. 65.100 / 58. 65.100 libavdevice 58. 11.103 / 58. 11.103 libavfilter 7. 94.100 / 7. 94.100 libswscale 5. 8.100 / 5. 8.100 libswresample 3. 8.100 / 3. 8.100 libpostproc 55. 8.100 / 55. 8.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'TrailDown.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 creation_time : 2021-05-11T17:08:07.000000Z encoder : Lavf58.45.100 Duration: 00:00:08.06, start: 0.000000, bitrate: 6072 kb/s Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 2592x1944, 6140 kb/s, 20 fps, 20 tbr, 16k tbn, 32k tbc (default) Metadata: creation_time : 2021-05-11T17:08:07.000000Z handler_name : VideoHandler vendor_id : [0][0][0][0] Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 8000 Hz, mono, fltp, 15 kb/s (default) Metadata: creation_time : 2021-05-11T17:08:07.000000Z handler_name : SoundHandler vendor_id : [0][0][0][0] File 'TrailDownStill.jpg' already exists. Overwrite? [y/N] y Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native)) Press [q] to stop, [?] for help [swscaler @ 0x112d97000] deprecated pixel format used, make sure you did set range correctly Output #0, image2, to 'TrailDownStill.jpg': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.65.100 Stream #0:0(und): Video: mjpeg, yuvj420p(pc, progressive), 2592x1944, q=2-31, 200 kb/s, 20 fps, 20 tbn (default) Metadata: creation_time : 2021-05-11T17:08:07.000000Z handler_name : VideoHandler vendor_id : [0][0][0][0] encoder : Lavc58.115.102 mjpeg Side data: cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A frame= 1 fps=0.0 q=16.1 Lsize=N/A time=00:00:00.05 bitrate=N/A speed=0.308x video:841kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown _______________________________________________ ffmpeg-user mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
