{"schema":"catalog-search/v2","items":[{"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.7836}},{"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.4326}},{"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.3349}},{"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.3265}},{"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.3246}},{"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.3218}},{"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.3178}},{"kind":"record","record":{"id":"dsc_01M6VNHB5PSKBAZTV130QKKD8Q","type":"discussion","title":"A useful next step for Set black and white points with FFmpeg colorlevels","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_01M6VNHB5PSKBAZTV130QKKD8Q","api_url":"https://veyrul.com/v1/records/dsc_01M6VNHB5PSKBAZTV130QKKD8Q","updated_at":"2026-11-07T18:50:01.045Z","score":0.309}},{"kind":"record","record":{"id":"dsc_01M6WH21TH26EE4M4V9CVEFXD2","type":"discussion","title":"Applying the research: Blur with FFmpeg avgblur","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_01M6WH21TH26EE4M4V9CVEFXD2","api_url":"https://veyrul.com/v1/records/dsc_01M6WH21TH26EE4M4V9CVEFXD2","updated_at":"2026-11-08T02:51:00.600Z","score":0.2996}},{"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.2984}},{"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.2959}},{"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":"Script repetitive edits like trimming, concatenating, flipping and overlaying clips.\n- Generate thumbnails or extract <b>frames</b> for analysis.\n- Pipe decoded <b>frames</b> into NumPy or ML code.\n\nFirst action: - Install <b>FFmpeg</b>","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.2957}},{"kind":"record","record":{"id":"dsc_01M6WEA52D0EA3JHYES6GGR65C","type":"discussion","title":"Creative practice with Denoise over time with FFmpeg atadenoise","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_01M6WEA52D0EA3JHYES6GGR65C","api_url":"https://veyrul.com/v1/records/dsc_01M6WEA52D0EA3JHYES6GGR65C","updated_at":"2026-11-08T02:03:00.426Z","score":0.2841}},{"kind":"record","record":{"id":"src_01M6V7ER38QHBHPS41WV009Z2B","type":"source","title":"Shotcut: free, open-source, cross-platform video editor","summary":"Shotcut is a free, open-source, cross-platform video editor. The README links the feature list and roadmap on the website, says binaries are built regularly and available from the download page, lists its direct dependencies (MLT, Qt 6 with 6.4 minimum, FFTW, FFmpeg, Frei0r and SDL) and gives CMake build steps.","snippet":"download page, lists its direct dependencies (MLT, Qt 6 with 6.4 minimum, FFTW, <b>FFmpeg</b>, Frei0r and SDL) and gives CMake build steps. What it supplies: Shotcut is a free","status":"active","categories":["T10"],"evidence":{"inspection":"source_inspected","execution":"not_run","review":"unreviewed"},"url":"https://veyrul.com/sources/src_01M6V7ER38QHBHPS41WV009Z2B","api_url":"https://veyrul.com/v1/records/src_01M6V7ER38QHBHPS41WV009Z2B","updated_at":"2026-11-07T14:43:59.176Z","score":0.2835}},{"kind":"record","record":{"id":"dsc_01M6W31DM6HA0H6Y80RGQK6DH2","type":"discussion","title":"Applying the research: Smooth without blurring edges using the FFmpeg guided 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_01M6W31DM6HA0H6Y80RGQK6DH2","api_url":"https://veyrul.com/v1/records/dsc_01M6W31DM6HA0H6Y80RGQK6DH2","updated_at":"2026-11-07T22:46:00.619Z","score":0.2829}},{"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.2815}},{"kind":"record","record":{"id":"dsc_01M6VT98T9KBR2TWE1WXJRBVNG","type":"discussion","title":"Creative practice with Apply a 1D LUT curve with FFmpeg lut1d","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_01M6VT98T9KBR2TWE1WXJRBVNG","api_url":"https://veyrul.com/v1/records/dsc_01M6VT98T9KBR2TWE1WXJRBVNG","updated_at":"2026-11-07T20:13:00.551Z","score":0.2812}},{"kind":"record","record":{"id":"dsc_01M6W991KQHXTBRSYZ14RK3SK7","type":"discussion","title":"Applying the research: Undo pulldown with FFmpeg pullup","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_01M6W991KQHXTBRSYZ14RK3SK7","api_url":"https://veyrul.com/v1/records/dsc_01M6W991KQHXTBRSYZ14RK3SK7","updated_at":"2026-11-08T00:35:01.236Z","score":0.2805}},{"kind":"record","record":{"id":"dsc_01M6WBZ2Q7W7ZZFMTJQZ87K52G","type":"discussion","title":"Connecting reusable workflows: Deinterlace with FFmpeg estdif","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_01M6WBZ2Q7W7ZZFMTJQZ87K52G","api_url":"https://veyrul.com/v1/records/dsc_01M6WBZ2Q7W7ZZFMTJQZ87K52G","updated_at":"2026-11-08T01:22:00.544Z","score":0.279}},{"kind":"record","record":{"id":"dsc_01M6WK5VSFXTMXMDRHDD737Z64","type":"discussion","title":"Story, meaning and form: Fix a PAL film field-order mismatch with FFmpeg phase","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_01M6WK5VSFXTMXMDRHDD737Z64","api_url":"https://veyrul.com/v1/records/dsc_01M6WK5VSFXTMXMDRHDD737Z64","updated_at":"2026-11-08T03:28:00.659Z","score":0.2782}},{"kind":"guide_preview","preview":{"schema":"guide-preview/v1","id":"art_01M6WEAS5XRX7QVN52TTYRQM16","type":"article","revision":1,"title":"Find black frames with FFmpeg blackframe","coverage":"For editors and archivists who want a per-frame list of almost fully black frames with timestamps, for finding chapter breaks, ad breaks or accidental black. You end up with log lines from FFmpeg you can cross-check in a player. Based on the FFmpeg manual and not run.","example":"A hypothetical recorded broadcast scanned at the default settings, noting the timestamps that bracket ad breaks; nothing was run, so no timestamps were seen.","tips":["The result lines only appear if the log level is at least info.","If dark scenes are flagged, lower the pixel threshold; if fades are missed, try a lower amount.","Cross-check the logged times against the picture in a player before cutting anything."],"categories":["T07"],"tags":["ffmpeg","blackframe","black-detection","chapters","qc"],"evidence":{"inspection":"source_inspected","execution":"not_run","review":"unreviewed","review_revision":null},"media":[]}}],"truncated":true,"has_more":true,"next_cursor":"eyJyZWZlcmVuY2UiOiJNakEiLCJwcmV2aWV3IjpudWxsLCJxIjoiRmluZCBibGFjayBmcmFtZXMgd2l0aCBGRm1wZWcgYmxhY2tmcmFtZSIsInR5cGVzIjpbXSwiY2F0ZWdvcmllcyI6W119","ordering":"bounded_reference_and_preview_lanes"}