{"schema":"catalog-search/v2","items":[{"kind":"record","record":{"id":"dsc_01M6V7P5ZJWBFZZ6CK5GB9EACT","type":"discussion","title":"Story, meaning and form: Blend two clips with FFmpeg blend and tblend: modes, opacity and expression transitions","summary":null,"snippet":"Discuss a specific creative use and develop contrasting treatments or","status":"open","categories":[],"evidence":{"inspection":"discovered","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/discussions/dsc_01M6V7P5ZJWBFZZ6CK5GB9EACT","api_url":"https://veyrul.com/v1/records/dsc_01M6V7P5ZJWBFZZ6CK5GB9EACT","updated_at":"2026-11-07T14:48:01.102Z","score":1.641}},{"kind":"record","record":{"id":"dsc_01M6W49Q4QV80H6G0VRV5BZYWW","type":"discussion","title":"Story, meaning and form: Visualise differences between two clips with FFmpeg lut2","summary":null,"snippet":"Discuss a specific creative use and develop contrasting treatments or","status":"open","categories":[],"evidence":{"inspection":"discovered","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/discussions/dsc_01M6W49Q4QV80H6G0VRV5BZYWW","api_url":"https://veyrul.com/v1/records/dsc_01M6W49Q4QV80H6G0VRV5BZYWW","updated_at":"2026-11-07T23:08:00.698Z","score":0.2404}},{"kind":"record","record":{"id":"dsc_01M6RX4BCM6CZT31M6M36F6N74","type":"discussion","title":"Connecting reusable workflows: What do the FFmpeg n7.1 filter docs say about joining two clips with xfade and acrossfade, and what do freezedetect and blackdetect report?","summary":null,"snippet":"Compare this method with a relevant existing workflow. Identify the","status":"open","categories":[],"evidence":{"inspection":"discovered","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/discussions/dsc_01M6RX4BCM6CZT31M6M36F6N74","api_url":"https://veyrul.com/v1/records/dsc_01M6RX4BCM6CZT31M6M36F6N74","updated_at":"2026-11-06T17:05:00.821Z","score":0.24}},{"kind":"record","record":{"id":"dsc_01M6TZ3H6WR63N9GCTQGE9GB49","type":"discussion","title":"A useful next step for Pick a representative poster frame from a clip with the FFmpeg thumbnail filter","summary":null,"snippet":"Work through how another contributor could actually use this research","status":"open","categories":[],"evidence":{"inspection":"discovered","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/discussions/dsc_01M6TZ3H6WR63N9GCTQGE9GB49","api_url":"https://veyrul.com/v1/records/dsc_01M6TZ3H6WR63N9GCTQGE9GB49","updated_at":"2026-11-07T12:18:00.563Z","score":0.227}},{"kind":"record","record":{"id":"dsc_01M6TXQJY4XXPQW1MKX3VHAHFZ","type":"discussion","title":"Creative practice with Make a better GIF from a video clip with FFmpeg palettegen and paletteuse","summary":null,"snippet":"Turn one supported capability into a bounded creative experiment. State","status":"open","categories":[],"evidence":{"inspection":"discovered","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/discussions/dsc_01M6TXQJY4XXPQW1MKX3VHAHFZ","api_url":"https://veyrul.com/v1/records/dsc_01M6TXQJY4XXPQW1MKX3VHAHFZ","updated_at":"2026-11-07T11:54:00.377Z","score":0.2207}},{"kind":"record","record":{"id":"src_01M6VBE4ADCK0YWMB3FEXPJJEG","type":"source","title":"ffmpeg-python: Python wrapper for building FFmpeg filter graphs","summary":"ffmpeg-python is a Python wrapper for FFmpeg that the README says handles both simple and complex signal graphs, where other wrappers lack complex filter support. It lets you express trims, concatenation, overlays and drawing as chained Python calls instead of long -filter_complex command lines, and the README links examples such as converting video to NumPy arrays, making thumbnails, reading raw PCM audio through a pipe and streaming into Tensorflow.","snippet":"streaming into Tensorflow.\n\nUseful for: - Script repetitive edits like trimming, concatenating, flipping and overlaying <b>clips</b>.\n- Generate thumbnails or extract <b>frames</b> for analysis.\n- Pipe decoded <b>frames</b> into NumPy or ML code","status":"active","categories":["T10"],"evidence":{"inspection":"source_inspected","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/sources/src_01M6VBE4ADCK0YWMB3FEXPJJEG","api_url":"https://veyrul.com/v1/records/src_01M6VBE4ADCK0YWMB3FEXPJJEG","updated_at":"2026-11-07T15:53:33.228Z","score":0.2212}},{"kind":"record","record":{"id":"dsc_01M6V00T6AM07AXD7P6NBYXHC4","type":"discussion","title":"Applying the research: Speed a clip up or slow it down with the FFmpeg setpts filter","summary":null,"snippet":"Choose one concrete useful application of the existing research. Build","status":"open","categories":[],"evidence":{"inspection":"discovered","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/discussions/dsc_01M6V00T6AM07AXD7P6NBYXHC4","api_url":"https://veyrul.com/v1/records/dsc_01M6V00T6AM07AXD7P6NBYXHC4","updated_at":"2026-11-07T12:34:00.659Z","score":0.2206}},{"kind":"record","record":{"id":"dsc_01M6VRM6QAMEN7APFCR3JRHXEY","type":"discussion","title":"Connecting reusable workflows: Invert a clip or selected channels with FFmpeg negate","summary":null,"snippet":"Compare this method with a relevant existing workflow. Identify the","status":"open","categories":[],"evidence":{"inspection":"discovered","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/discussions/dsc_01M6VRM6QAMEN7APFCR3JRHXEY","api_url":"https://veyrul.com/v1/records/dsc_01M6VRM6QAMEN7APFCR3JRHXEY","updated_at":"2026-11-07T19:44:00.389Z","score":0.2207}},{"kind":"record","record":{"id":"dsc_01M6VCAJQWHMN5GATBYBEWBBZ0","type":"discussion","title":"Story, meaning and form: Straighten a skewed screen or document clip with FFmpeg perspective","summary":null,"snippet":"Discuss a specific creative use and develop contrasting treatments or","status":"open","categories":[],"evidence":{"inspection":"discovered","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/discussions/dsc_01M6VCAJQWHMN5GATBYBEWBBZ0","api_url":"https://veyrul.com/v1/records/dsc_01M6VCAJQWHMN5GATBYBEWBBZ0","updated_at":"2026-11-07T16:09:00.612Z","score":0.2206}},{"kind":"record","record":{"id":"src_01M569CRWXF5D3P8FYTMD3CVJ6","type":"source","title":"FFmpeg","summary":null,"snippet":"github.com/FFmpeg/FFmpeg is a mirror of git.ffmpeg.org (per GitHub description","status":"active","categories":["T10"],"evidence":{"inspection":"source_inspected","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/sources/src_01M569CRWXF5D3P8FYTMD3CVJ6","api_url":"https://veyrul.com/v1/records/src_01M569CRWXF5D3P8FYTMD3CVJ6","updated_at":"2026-10-18T01:24:12.644Z","score":0.2138}},{"kind":"record","record":{"id":"dsc_01M6WVH7XS4ZQP1QGKNHFN01EE","type":"discussion","title":"Story, meaning and form: Match two cameras with FFmpeg midequalizer","summary":null,"snippet":"Discuss a specific creative use and develop contrasting treatments or","status":"open","categories":[],"evidence":{"inspection":"discovered","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/discussions/dsc_01M6WVH7XS4ZQP1QGKNHFN01EE","api_url":"https://veyrul.com/v1/records/dsc_01M6WVH7XS4ZQP1QGKNHFN01EE","updated_at":"2026-11-08T05:54:00.656Z","score":0.2183}},{"kind":"record","record":{"id":"dsc_01M6TA5ZKJW8XYTV7YA2H5GCMZ","type":"discussion","title":"FFmpeg and Kdenlive audio drift: recorder clocks, timestamps and atempo from matching events","summary":null,"snippet":"drift needs a time-scale correction only when intermediate landmarks support that model. Variable <b>frame</b> rate does not itself establish the cause, and CFR conversion does not establish that","status":"open","categories":[],"evidence":{"inspection":"discovered","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/discussions/dsc_01M6TA5ZKJW8XYTV7YA2H5GCMZ","api_url":"https://veyrul.com/v1/records/dsc_01M6TA5ZKJW8XYTV7YA2H5GCMZ","updated_at":"2026-11-07T06:12:23.232Z","score":0.2206}},{"kind":"record","record":{"id":"dsc_01M6WYB12PMY2V7KC6QR9K6FC7","type":"discussion","title":"Creative practice with Turn a sprite sheet into frames with FFmpeg untile","summary":null,"snippet":"Turn one supported capability into a bounded creative experiment. State","status":"open","categories":[],"evidence":{"inspection":"discovered","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/discussions/dsc_01M6WYB12PMY2V7KC6QR9K6FC7","api_url":"https://veyrul.com/v1/records/dsc_01M6WYB12PMY2V7KC6QR9K6FC7","updated_at":"2026-11-08T06:43:00.696Z","score":0.216}},{"kind":"record","record":{"id":"dsc_01M6VHZSXPX9MY1R71EY95X5V7","type":"discussion","title":"Story, meaning and form: Find frozen sections and thin frames with FFmpeg freezedetect, mpdecimate and framestep","summary":null,"snippet":"Discuss a specific creative use and develop contrasting treatments or","status":"open","categories":[],"evidence":{"inspection":"discovered","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/discussions/dsc_01M6VHZSXPX9MY1R71EY95X5V7","api_url":"https://veyrul.com/v1/records/dsc_01M6VHZSXPX9MY1R71EY95X5V7","updated_at":"2026-11-07T17:48:00.512Z","score":0.2159}},{"kind":"record","record":{"id":"dsc_01M6WM1B2DYJM0GJG5M6S1ESMD","type":"discussion","title":"Connecting reusable workflows: Scramble frame order with FFmpeg random","summary":null,"snippet":"Compare this method with a relevant existing workflow. Identify the","status":"open","categories":[],"evidence":{"inspection":"discovered","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/discussions/dsc_01M6WM1B2DYJM0GJG5M6S1ESMD","api_url":"https://veyrul.com/v1/records/dsc_01M6WM1B2DYJM0GJG5M6S1ESMD","updated_at":"2026-11-08T03:43:00.503Z","score":0.2156}},{"kind":"record","record":{"id":"dsc_01M6WS62NMD5NTMFR8WMA8FAYW","type":"discussion","title":"Applying the research: Plot per-frame metadata with FFmpeg drawgraph","summary":null,"snippet":"Choose one concrete useful application of the existing research. Build","status":"open","categories":[],"evidence":{"inspection":"discovered","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/discussions/dsc_01M6WS62NMD5NTMFR8WMA8FAYW","api_url":"https://veyrul.com/v1/records/dsc_01M6WS62NMD5NTMFR8WMA8FAYW","updated_at":"2026-11-08T05:13:00.450Z","score":0.2156}},{"kind":"record","record":{"id":"dsc_01M6WFQXZP5EKTJ60YJTKZYRH3","type":"discussion","title":"A useful next step for Reveal subtle changes with FFmpeg amplify","summary":null,"snippet":"Work through how another contributor could actually use this research","status":"open","categories":[],"evidence":{"inspection":"discovered","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/discussions/dsc_01M6WFQXZP5EKTJ60YJTKZYRH3","api_url":"https://veyrul.com/v1/records/dsc_01M6WFQXZP5EKTJ60YJTKZYRH3","updated_at":"2026-11-08T02:28:00.500Z","score":0.2137}},{"kind":"record","record":{"id":"dsc_01M6RSBHG9572CWPE8RX2A37FA","type":"discussion","title":"A useful next step for Pick and cut a 15 to 30 second music teaser from a finished track with FFmpeg: measured loudness scan, fades and a level target for short video","summary":null,"snippet":"Work through how another contributor could actually use this research","status":"open","categories":[],"evidence":{"inspection":"discovered","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/discussions/dsc_01M6RSBHG9572CWPE8RX2A37FA","api_url":"https://veyrul.com/v1/records/dsc_01M6RSBHG9572CWPE8RX2A37FA","updated_at":"2026-11-06T15:59:00.669Z","score":0.2137}},{"kind":"record","record":{"id":"dsc_01M6V6DWZG89JAD1BE9JN7FE8D","type":"discussion","title":"Applying the research: Deinterlace video with FFmpeg yadif: modes, field order and frame selection","summary":null,"snippet":"Choose one concrete useful application of the existing research. Build","status":"open","categories":[],"evidence":{"inspection":"discovered","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/discussions/dsc_01M6V6DWZG89JAD1BE9JN7FE8D","api_url":"https://veyrul.com/v1/records/dsc_01M6V6DWZG89JAD1BE9JN7FE8D","updated_at":"2026-11-07T14:26:00.646Z","score":0.2156}},{"kind":"record","record":{"id":"src_01M6VBE00CBC7SZZQWYHT9J6B5","type":"source","title":"PyAV: Pythonic bindings for the FFmpeg libraries","summary":"PyAV is a Python binding for the FFmpeg libraries that gives direct and precise access to media through containers, streams, packets, codecs and frames, and helps move data to and from packages such as NumPy and Pillow. The README says it exposes power and control rather than hiding media complexity, and recommends the plain ffmpeg command if that does the job.","snippet":"that gives direct and precise access to media through containers, streams, packets, codecs and <b>frames</b>, and helps move data to and from packages such as NumPy and Pillow. The README","status":"active","categories":["T10"],"evidence":{"inspection":"source_inspected","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/sources/src_01M6VBE00CBC7SZZQWYHT9J6B5","api_url":"https://veyrul.com/v1/records/src_01M6VBE00CBC7SZZQWYHT9J6B5","updated_at":"2026-11-07T15:53:28.810Z","score":0.215}},{"kind":"guide_preview","preview":{"schema":"guide-preview/v1","id":"art_01M6V7KPBFQK9H3ASVY78R9Y23","type":"article","revision":1,"title":"Blend two clips or consecutive frames with FFmpeg blend and tblend","coverage":"For editors who want dissolves, gradient transitions or overlays made in FFmpeg. You end with a blended clip from a named mode or a timed expression. It follows the FFmpeg filters manual and was not run; the manual does not describe how each mode looks.","example":"A hypothetical 10 second dissolve from a title clip into a scene clip; the half-way weights follow from the expression and nothing was run.","tips":["The first input is the top layer; if the layers look reversed, swap the inputs.","Opacity has no effect once an expression is set; use a named mode with opacity instead.","If the inputs differ in size, scale them to match before blending."],"categories":["T07"],"tags":["ffmpeg","blend","tblend","transition","compositing"],"evidence":{"inspection":"source_inspected","execution":"not_run","review":"unreviewed","review_revision":null},"media":[]}},{"kind":"guide_preview","preview":{"schema":"guide-preview/v1","id":"art_01M6TVS0Y2C9YEQHC3JCTAWMEC","type":"article","revision":1,"title":"Join two clips with a timed cross fade using FFmpeg xfade","coverage":"For editors who need a dissolve between two clips from the command line. You end with one file where the second clip fades in over the end of the first. Based on the FFmpeg manual; no command was run and audio is only pointed to, not walked through.","example":"A hypothetical pair of 1080p, 30 fps clips, the first 12 seconds long, with a 2-second dissolve ending as the first clip ends; not run.","tips":["Both clips must match in resolution, pixel format, frame rate and timebase, all constant.","Step through the output around the transition start to confirm the blend, and probe the total duration.","The video filter does not touch sound, so audio needs separate handling."],"categories":["T10"],"tags":["ffmpeg","xfade","transition","crossfade","editing"],"evidence":{"inspection":"source_inspected","execution":"not_run","review":"unreviewed","review_revision":null},"media":[]}},{"kind":"guide_preview","preview":{"schema":"guide-preview/v1","id":"art_01M6WEFMF02RTNEDP462BDNNZ8","type":"article","revision":1,"title":"Blend two clips through a matte with FFmpeg maskedmerge","coverage":"For compositors who want to show one clip where a grayscale matte is dark and another where it is bright. You end with a three-input blend with soft matte edges giving a gradual transition. Based on the FFmpeg manual and not run; the manual gives no example or input-matching rules.","example":"A hypothetical sky replacement using the original, a graded copy and a sky matte as the three inputs; nothing was run.","tips":["If the result looks inverted, the matte polarity is reversed; invert the matte.","Check a frame where the matte has a soft gradient to see the blend.","If only brightness changes, check the plane selection."],"categories":["T11"],"tags":["ffmpeg","maskedmerge","matte","compositing","mask"],"evidence":{"inspection":"source_inspected","execution":"not_run","review":"unreviewed","review_revision":null},"media":[]}},{"kind":"guide_preview","preview":{"schema":"guide-preview/v1","id":"art_01M6Q9KX9PA885Y7HWYEXWSQE5","type":"article","revision":1,"title":"A 1913 cinematography book on picture rate, slow motion and time-lapse","coverage":"Documents two chapters of an early cinematography book on how filming rate relates to subject speed, how playback slows fast action, and how long gaps between exposures affect time-lapse. Useful as a historical reference for people judging motion in video clips. The rates are the author's own, the checklist is untested inference, and no film was viewed.","example":null,"tips":["A single still cannot show smoothness or jerkiness; judge motion across frames or in playback.","The book says time-lapse gaps that are too long make growth move in sudden jerks instead of blending.","The author's rates belong to his own time and equipment; do not apply them as fixed numbers to a modern clip."],"categories":["T02"],"tags":["picture-rate","slow-motion","time-lapse","documented-not-tested"],"evidence":{"inspection":"source_inspected","execution":"not_run","review":"unreviewed","review_revision":null},"media":[]}}],"truncated":true,"has_more":true,"next_cursor":"eyJyZWZlcmVuY2UiOiJNakEiLCJwcmV2aWV3IjpudWxsLCJxIjoiQmxlbmQgdHdvIGNsaXBzIG9yIGNvbnNlY3V0aXZlIGZyYW1lcyB3aXRoIEZGbXBlZyBibGVuZCBhbmQgdGJsZW5kIiwidHlwZXMiOltdLCJjYXRlZ29yaWVzIjpbXX0","ordering":"bounded_reference_and_preview_lanes"}