-
-
Notifications
You must be signed in to change notification settings - Fork 0
Fork Network Overview
Comprehensive catalog of fixes, features, and improvements found across all forks of jocover/jetson-ffmpeg and Keylost/jetson-ffmpeg.
Generated: 2026-06-12 Forks enumerated: 237 unique (166 jocover direct, 56 Keylost direct, 71 grandchildren) Active forks (commits ahead or extra branches): 62 Mirrors (identical to parent): 174
Updated every ~5 repos. Status key:
-
Commits:
✓all read |—none ahead | count if partial -
Issues (O/C): open/closed count checked, e.g.
2/5 ✓= 2 open + 5 closed, all read - PRs (O/C): same format
-
Comments:
✓all read |—none |partialif incomplete -
Refs: links in comments —
N✓= N refs found and followed |—none |N/M= N of M followed
| Repo | Issues O/C | PRs O/C | Comments | Refs | Status |
|---|---|---|---|---|---|
| jocover/jetson-ffmpeg | 80/39 ✓ | 11/9 ✓ | ✓ | 15✓ | done |
| Keylost/jetson-ffmpeg | 18/22 ✓ | 12/9 ✓ | ✓ | 12✓ | done |
| # | Fork | Ahead | Behind | Parent | Branches | Commits | Issues O/C | PRs O/C | Comments | Refs | Status |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Keylost/jetson-ffmpeg | 74 | 0 | jocover | dmabuf_wip, fork_fix, jetpacksupporttable, madsciencetist-stubs | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 2 | dsleep/jetson-ffmpeg | 32 | 0 | jocover | — | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 3 | muxable/jetson-ffmpeg | 28 | 0 | jocover | — | ✓ | 0/0 | 1/0 ✓ | ✓ | — | done |
| 4 | YuriiHoliuk/jetson-ffmpeg | 26 | 0 | keylost | dmabuf_wip, fork_fix, jetpacksupporttable, madsciencetist-stubs | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 5 | xia-chu/jetson-ffmpeg | 16 | 0 | jocover | — | ✓ | 0/0 | 0/0 | ✓ | 1✓ | done |
| 6 | mattangus/jetson-ffmpeg | 14 | 0 | jocover | feature/docker | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 7 | JeanPaulSB/jetson-ffmpeg | 11 | 0 | jocover | — | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 8 | HunterAP23/jetson-ffmpeg | 10 | 0 | jocover | — | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 9 | wangxiaoshuang/jetson-ffmpeg | 9 | 6 | keylost | — | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 10 | hsuanguo/jetson-ffmpeg | 8 | 25 | keylost | feature/cherry-pick-rtsp-patch, feature/ffmpeg-6.1, feature/fixed-child-thread, feature/minor-fixes | ✓ | 0/0 | 4/0 ✓ | ✓ | 2✓ | done |
| 11 | Extend-Robotics/jetson-ffmpeg | 8 | 74 | douo (grandchild) | — | ✓ | 0/0 | 0/0 | ✓ | 3✓ | done |
| 12 | bradcagle/jetson-ffmpeg | 7 | 0 | jocover | nvutils | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 13 | fingul/jetson-ffmpeg | 7 | 25 | keylost | — | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 14 | Tantael/jetson-ffmpeg-fixed | 7 | 74 | douo (grandchild) | patch-1 | ✓ | 0/0 | 0/0 | ✓ | — | done (README-only) |
| 15 | mguzzina/jetson-ffmpeg | 6 | 0 | keylost | — | ✓ | 0/0 | 0/0 | ✓ | 1✓ | done |
| 16 | v-faeez-kadiri/jetson-ffmpeg | 5 | 25 | keylost | — | ✓ | 0/0 | 1/0 ✓ | ✓ | — | done |
| 17 | dlavrantonis/jetson-ffmpeg | 5 | 74 | vietnx (grandchild) | — | ✓ | 0/1 ✓ | 0/1 ✓ | ✓ | — | done (README-only) |
| 18 | spotai/jetson-ffmpeg | 5 | 25 | v-faeez-kadiri (grandchild) | ffmpeg-8-support | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 19 | vietnx/jetson-ffmpeg | 4 | 2 | jocover | fix-compatible-issue | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 20 | SynclairVision/jetson-ffmpeg | 4 | 2 | keylost | — | ✓ | 0/0 | 0/0 | ✓ | — | done (trivial) |
| 21 | ReAlexLiu/jetson-ffmpeg | 4 | 74 | douo (grandchild) | — | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 22 | moss-ag/jetson-ffmpeg | 3 | 0 | jocover | — | ✓ | 0/0 | 0/0 | ✓ | — | done (trivial) |
| 23 | izdeveloper/jetson-ffmpeg | 3 | 25 | keylost | jetpack-6.2.1 | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 24 | madsciencetist/jetson-ffmpeg | 3 | 21 | keylost | add_resize_option, add_resize_option2, stderr, stubs | ✓ | 0/0 | 3/0 ✓ | ✓ | — | done |
| 25 | AndBobsYourUncle/jetson-ffmpeg | 3 | 21 | madsciencetist (grandchild) | — | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 26 | moss-robot/jetson-ffmpeg | 2 | 0 | jocover | — | ✓ | 0/0 | 0/0 | ✓ | — | done (trivial) |
| 27 | bepro-company/jetson-ffmpeg | 2 | 0 | jocover | — | ✓ | 0/0 | 0/0 | ✓ | — | done (trivial) |
| 28 | douo/jetson-ffmpeg | 2 | 0 | jocover | — | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 29 | nulijiabei/jetson-ffmpeg | 2 | 0 | jocover | — | ✓ | 0/0 | 0/0 | ✓ | — | done (trivial) |
| 30 | rai-opensource/jetson-ffmpeg | 2 | 74 | douo (grandchild) | — | ✓ | 0/0 | 0/0 | ✓ | — | done (mirror of douo) |
| 31 | dbussert/jetson-ffmpeg | 2 | 74 | aveao (grandchild) | — | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 32 | Ledrego/jetson-ffmpeg | 2 | 25 | izdeveloper (grandchild) | — | ✓ | 0/0 | 0/0 | ✓ | — | done (behind parent) |
| 33 | ahtonen/jetson-ffmpeg | 1 | 0 | jocover | — | ✓ | 0/0 | 0/0 | ✓ | — | done (trivial) |
| 34 | dthk-cogmatix/jetson-ffmpeg | 1 | 0 | jocover | — | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 35 | aveao/jetson-ffmpeg | 1 | 0 | jocover | — | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 36 | D31m05z/jetson-ffmpeg | 1 | 1 | jocover | — | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 37 | jkms/jetson-ffmpeg | 1 | 4 | jocover | deb | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 38 | didebuli/jetson-ffmpeg | 1 | 4 | jocover | — | ✓ | 0/0 | 0/0 | ✓ | — | done (trivial) |
| 39 | lyfpeter/jetson-ffmpeg | 1 | 8 | jocover | — | ✓ | 0/0 | 0/0 | ✓ | — | done (trivial) |
| 40 | timonsku/jetson-ffmpeg | 1 | 10 | jocover | — | ✓ | 0/0 | 0/0 | ✓ | — | done (trivial) |
| 41 | xsacha/jetson-ffmpeg | 1 | 0 | jocover | patch-1, patch-2, patch-3, patch-4 | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 42 | danhawker/jetson-ffmpeg | 1 | 1 | keylost | — | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 43 | nguyenhunga5/jetson-ffmpeg | 1 | 1 | keylost | dmabuf_wip, fork_fix, jetpacksupporttable, madsciencetist-stubs | ✓ | 0/0 | 0/0 | ✓ | — | done (trivial) |
| 44 | AustinTodd-eng/jetson-ffmpeg | 1 | 2 | keylost | — | ✓ | 0/0 | 0/0 | ✓ | — | done (trivial) |
| 45 | matthewj-t6/jetson-ffmpeg | 1 | 8 | keylost | — | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 46 | sonnyhe/jetson-ffmpeg | 1 | 25 | keylost | — | ✓ | 0/0 | 0/0 | ✓ | — | done (trivial) |
| 47 | nhahn/jetson-ffmpeg | 1 | 25 | keylost | — | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 48 | jamitupya/jetson-ffmpeg | 1 | 74 | aveao (grandchild) | — | ✓ | 0/0 | 0/0 | ✓ | — | done (mirror of aveao) |
| 49 | EliteScientist/jetson-ffmpeg | 1 | 74 | aveao (grandchild) | — | ✓ | 0/0 | 0/0 | ✓ | — | done (mirror of aveao) |
| 50 | traversaro/jetson-ffmpeg | 1 | 21 | madsciencetist (grandchild) | addffmpeg61 | ✓ | 0/0 | 0/0 | ✓ | — | done |
| # | Fork | Branches | Parent | Commits | Issues O/C | PRs O/C | Comments | Refs | Status |
|---|---|---|---|---|---|---|---|---|---|
| 51 | Parrot-Developers/jetson-ffmpeg | jetson-ffmpeg-parrot-branch | keylost | ✓ | 0/0 | 0/0 | ✓ | — | done (trivial) |
| 52 | LanderN/jetson-ffmpeg | optimize/jetson | keylost | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 53 | Hansoluo/jetson-ffmpeg | dmabuf_wip, fork_fix, jetpacksupporttable, madsciencetist-stubs | keylost | ✓ | 0/0 | 0/0 | ✓ | — | done (trivial) |
| 54 | GlassBil/jetson-ffmpeg | cuda_buffers | keylost | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 55 | sadhasld/jetson-ffmpeg | cursor/generate-comprehensive-api-documentation-e870 | keylost | ✓ | 0/0 | 0/0 | ✓ | — | done (AI-gen docs) |
| 56 | therishidesai/jetson-ffmpeg | rdesai/jetpack-nixos-build | keylost | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 57 | JetLinWork/jetson-ffmpeg | fork_fix | keylost | ✓ | 0/0 | 0/0 | ✓ | — | done (trivial) |
| 58 | peters/jetson-ffmpeg | issue-ffmpeg-6.1 | keylost | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 59 | thejasonfisher/jetson-ffmpeg | fork_fix | keylost | ✓ | 0/0 | 0/0 | ✓ | — | done (trivial) |
| 60 | w3sip/jetson-ffmpeg | feat/dq, feat/fix, feat/jp5.1, feat/jp51-2, feat/reproduce, release/0.9, release/0.9.1 | keylost | ✓ | 0/0 | 6/0 ✓ | ✓ | 2✓ | done |
| 61 | cybernhl/jetson-ffmpeg | low_latency, moonlight_fixes, nvmpi_optional | cgutman (grandchild) | ✓ | 0/0 | 0/0 | ✓ | — | done |
| 62 | Extend-Robotics/jetson-ffmpeg-keylost | packaging | keylost | ✓ | 0/0 | 0/0 | ✓ | — | done (trivial) |
Initially classified as mirrors (0 ahead on master), but had unique work on branches.
| # | Fork | Branches | Parent | Commits | Issues O/C | PRs O/C | Comments | Refs | Status |
|---|---|---|---|---|---|---|---|---|---|
| 63 | bmegli/jetson-ffmpeg | new-ffmpeg-api | jocover | ✓ | 0/0 | 0/0 | ✓ | 1✓ | done (NEW: encode API POC) |
| 64 | tmm1/jetson-ffmpeg | fancybits, patch-1 | jocover | ✓ | 0/0 | 0/0 | ✓ | — | done (NEW: cmake fix) |
| 65 | kazuki0824/jetson-ffmpeg | resolve-missing-dep-on-pkgconfig | jocover | ✓ | 0/0 | 0/0 | ✓ | — | done (NEW: Yocto cross-compile) |
| 66 | cgutman/jetson-ffmpeg | moonlight_fixes, low_latency, nvmpi_optional | jocover | ✓ | 0/0 | 0/0 | ✓ | — | done (= cybernhl #61) |
| 67 | uschen-thirdparty/jetson-ffmpeg | max_perf_mode | jocover | ✓ | 0/1 ✓ | 0/0 | ✓ | — | done (known: setMaxPerfMode) |
| 68 | koenvandesande/jetson-ffmpeg | loosen_pixfmt_check | jocover | ✓ | 0/0 | 0/0 | ✓ | — | done (known: YUVJ420P) |
| 69 | gvsyn/jetson-ffmpeg | n4.4.1 | jocover | ✓ | 0/0 | 0/0 | ✓ | — | done (superseded: 4.4.1 rebase) |
| 70 | coupdair/jetson-ffmpeg | dev_use | jocover | ✓ | 0/0 | 0/0 | ✓ | — | done (README only) |
All 164 verified via gh api repos/{owner}/{repo}/branches + compare endpoint.
Full list in FORKS_REPORT.md section 21c.
| Agent | Model | Scope | Forks |
|---|---|---|---|
| U1 | sonnet | jocover upstream issues+PRs | jocover/jetson-ffmpeg |
| U2 | sonnet | Keylost upstream issues+PRs | Keylost/jetson-ffmpeg |
| F1 | sonnet | Top jocover-era forks | #2 dsleep, #3 muxable, #5 xia-chu |
| F2 | sonnet | Keylost network | #1 Keylost branches, #4 YuriiHoliuk, #9 wangxiaoshuang, #15 mguzzina |
| F3 | sonnet | Mid jocover-era + cgutman tree | #6 mattangus, #7 JeanPaulSB, #8 HunterAP23, #12 bradcagle, #61 cybernhl |
| F4 | sonnet | Keylost mid-tier + branch-heavy | #10 hsuanguo, #13 fingul, #16 v-faeez-kadiri, #18 spotai, #23 izdeveloper, #24 madsciencetist, #60 w3sip |
| F5 | sonnet | Fork subtrees | #11 Extend-Robotics, #14 Tantael, #17 dlavrantonis, #19 vietnx, #21 ReAlexLiu, #25 AndBobsYourUncle, #28 douo, #30 rai-opensource, #31 dbussert, #32 Ledrego, #35 aveao, #48 jamitupya, #49 EliteScientist, #50 traversaro |
| F6 | sonnet | Small + branch-only | #20 SynclairVision, #22 moss-ag, #26-#29, #33-#47, #51-#59, #62 |
| # | Cluster | Issues | Status | Key Links |
|---|---|---|---|---|
| 1 | RTSP/RTP out-of-band SPS/PPS decoder hang | #1, #14 | Our fix: gjrtimmer@08e32c15 (not merged upstream) | w3sip@de0b039 (partial), gjrtimmer#1 |
| 2 | JetPack 5.1.2+ nvbuf_utils removed | #16, PR#23 | Fixed in Keylost master | — |
| 3 | Encoder bufsize/bitrate ignored | #5 | Fixed upstream | — |
| 4 | FFmpeg version support (6.0, 6.1, 7.x, 8.0) | #6, #13, #28, PR#19 | ffpatch.sh handles all now | — |
| 5 | Decode resize alignment corruption | PR#8 (merged→reverted #10) | Fixed in master later | — |
| 6 | Child process segfault / nvjpeg stubs | PR#9 | Merged 2024-09-30 | NVIDIA forum /t/189290 |
| 7 | WITH_NVUTILS 20% more CPU | #11 | Measurement methodology; no code fix | — |
| 8 | All frames marked as keyframes | #26 | UNFIXED upstream | nvmpi_enc.cpp:92 |
| 9 | Segmented HEVC only first segment plays | #39 | Fixed Aug 2025 | — |
| 10 | Codec flush not implemented | #42 | UNFIXED — no response | — |
| 11 | Encoder 4K max resolution | #3, #44 | Hardware limit; documented | NVIDIA forum /t/298688 |
| 12 | Orin Nano has no HW encoder | #43 | Hardware limit; documented | — |
| 13 | HEVC over RTMP needs Enhanced RTMP | #35 | FFmpeg ≥6.1 required | gjrtimmer/releases |
| 14 | stderr vs stdout in libnvmpi | PR#15 | UNFIXED — our PR#53 covers this | — |
| 15 | GPU memory / hwcontext_nvmpi | #31, #47 | UNFIXED — major feature gap | jellyfin-ffmpeg#653 |
| 16 | Encoder packet pool EAGAIN | #38 | Workaround: -packet_pool_size:v 32
|
— |
| 17 | CPU rising during long decode | #41 | Keylost could not reproduce on JP6.2 | — |
| 18 | JPEG HW decode/encode | #37, #40 | UNFIXED — NVJPG engine unused | — |
| 19 | H265 setLevel missing | #50 | UNFIXED | — |
| 20 | Lossless H265 (qp=0) | #45 | UNFIXED — enableLossless exists but not exposed | — |
| 21 | AV1 support request | #49 | UNFIXED — HW capable on AGX Orin | — |
| 22 | Upstream to FFmpeg mainline | #46 | No response | — |
| 23 | Ubuntu 22.04 compilation | #21, PR#48 | Workaround: downgrade linux-libc-dev | — |
| 24 | pkg-config nvmpi not found | #22, #36 | User error; documented | — |
| Fix | Fork | Commit | Severity | In Our Repo? |
|---|---|---|---|---|
| Mutex deadlock on EOS in decoder | cgutman/cybernhl | 58a977d4 |
CRITICAL | NO |
delete vs delete[] for array buffers (heap corruption) |
cgutman/cybernhl | ff8fd95a |
CRITICAL | NO |
| Uninitialized pointer deletion on close | cgutman/cybernhl | 49d55d10 |
CRITICAL | NO |
| Decoder hang on close without data (no resolution event) | cgutman/cybernhl | 00455615 |
HIGH | NO |
Child process decoder segfault (NvBufferSession) |
xia-chu (via Keylost fork_fix) | fd0900d7 |
HIGH | Verify |
| Wrong color format ABGR32→XRGB32 in RGBA→YUV converter | dsleep | 018e6e2e |
MEDIUM | NO |
| Encoder hang: raw ptr → unique_ptr for NvVideoEncoder | dsleep | 17443b0e |
MEDIUM | NO |
AV_PIX_FMT_YUVJ420P → YUV420P remapping for MJPEG sources |
bradcagle | 67e7bbcd |
MEDIUM | NO |
| All frames marked as keyframes (encoder) | spotai | 1324d7d6 |
CRITICAL | NO |
| H.265 encoder header/IDR unbounded scan | spotai | 2b715e81 |
CRITICAL | NO |
| Missing return statement in encoder capture cb (UB→segfault) | Extend-Robotics | 0229e5ba |
CRITICAL | NO |
| Missing return statement in decoder capture cb (UB→segfault) | Extend-Robotics | 6d327624 |
CRITICAL | NO |
| glibc 2.34+ pthread_join segfault (Ubuntu 22.04+) | LanderN | optimize/jetson (3 commits) | CRITICAL | NO |
| 4K I-frame buffer overflow (4MB→10MB + bounds check) | GlassBil | cuda_buffers branch | HIGH | NO |
| RTSP/extradata fix (prime decoder with SPS/PPS) | w3sip | 0d320fe5 |
HIGH | Our fix: gjrtimmer@08e32c15 |
| Decoder crash-on-exit (cleanup queued buffers) | w3sip | 49039f81 |
HIGH | NO |
| NvBufferSession lifecycle in decoder | dthk-cogmatix | single commit | MEDIUM | NO |
| Memory leak in nvmpi_enc + cleanup | vietnx | a8edb1c1 |
MEDIUM | NO |
| insert_vui for FPS info in stream | vietnx | fdbb815a |
MEDIUM | NO |
| JetPack 4.4/4.5/4.6 compat fixes | vietnx | 2 commits | LOW | N/A (JP4 era) |
Missing new file mode in ffmpeg_nvmpi.patch |
HunterAP23 | 4cca5adf |
LOW (superseded) | N/A |
Remove spurious -lnvbufsurface from pkg-config |
JeanPaulSB | fcdae9fa |
LOW | Verify |
| Revert jocover PR#78 (CMake/pc changes) | xia-chu | 85205907 |
LOW | N/A |
| nvbuf_utils removal for CMake | AndBobsYourUncle | b8fb1ee3 |
LOW | N/A |
| pkg_check_modules(libv4l2) fix | D31m05z | single commit | LOW | NO |
| Feature | Fork | Commit/Branch | Value | In Our Repo? |
|---|---|---|---|---|
condition_variable blocking wait for low-latency decode |
cgutman/cybernhl |
caac9899 (low_latency branch) |
HIGH | NO (TODO.md tracks this) |
Dynamic bitrate control API (nvmpi_encoder_set_bitrate) |
muxable | 1a0c3bdc |
HIGH | NO |
Force IDR frame API (nvmpi_encoder_force_idr) |
muxable | 1a0c3bdc |
HIGH | NO |
| JPEG HW decode prototype (NvJPEGDecoder C API) | bradcagle | cd9bf72e |
MEDIUM (incomplete) | NO |
Optional NVMPI build (#if CONFIG_NVMPI guards) |
cgutman/cybernhl |
b015913a (nvmpi_optional) |
MEDIUM | NO |
| Expanded encoder params (QP/SAR/ROI/lossless/slice/VUI/AUD) | muxable | 1a0c3bdc |
MEDIUM | NO |
isRawRGBA encoder param actually wired |
dsleep | cf1bb455 |
LOW | NO |
| FFmpeg 4.3 patch compatibility | xia-chu | cc8dbd40 |
LOW (superseded) | N/A |
| Zero-copy DMA-BUF decode+encode pipeline | YuriiHoliuk | 26 commits | HIGH | NO |
| VIC hardware scale filter (vf_scale_vic) | YuriiHoliuk |
vf_scale_vic.c +468 lines |
HIGH | NO |
| P010 10-bit decode support | YuriiHoliuk | 4aab1b56 |
HIGH | NO |
| dlopen lazy-loading libnvmpi.so | YuriiHoliuk | b4ede2c9 |
MEDIUM | NO |
| hwcontext_nvmpi (FFmpeg HW device type) | mguzzina | 6 commits (WIP) | HIGH | NO |
| Configurable frame_pool_size / packet_pool_size | spotai | cf0560b5 |
HIGH | NO |
| FFmpeg 8.0+ compatibility | spotai | f0a52dfa |
HIGH | Verify |
| RTSP extradata fix (co-authored w/ w3sip) | hsuanguo | PR#3 | MEDIUM | Verify |
| Decoder resize option (-resize WxH) | madsciencetist | add_resize_option2 branch | MEDIUM | NO |
| stderr→stdout fix (all prints to stderr) | madsciencetist | PR#1 | MEDIUM | Our PR#53 |
| Decoder thread naming (pthread) | madsciencetist | PR#1 | LOW | NO |
| JetPack 6 path auto-detection (/tegra vs /nvidia) | nhahn | single commit | MEDIUM | NO |
| CUDA buffer return API (frames stay on GPU) | GlassBil | cuda_buffers branch | HIGH | NO |
| setMaxPerfMode(1) decode perf | LanderN/douo | one-liner | HIGH | Verify |
| Encoder poc-type=2 (zerolatency display order) | Extend-Robotics | 96803164 |
MEDIUM | NO |
| POC new FFmpeg receive_packet API | Extend-Robotics | 1c100f1c |
MEDIUM (reference) | NO |
| FFmpeg 4.4 port | aveao | 144f96ed |
LOW (superseded) | N/A |
| FFmpeg 4.4.2 patch fix | dbussert | 9318e2de |
LOW (superseded) | N/A |
| FFmpeg 6.1 full overlay | traversaro | c83482ed |
LOW (we have it) | N/A |
| Missing unistd.h in nvmpi_enc.c | traversaro | 9148a0f0 |
LOW | Verify |
| JetPack 5.0 compat + repo restructure | ReAlexLiu | 07e106eb |
LOW (reference) | N/A |
| NixOS flake.nix build | therishidesai | rdesai/jetpack-nixos-build | LOW (niche) | N/A |
| JetPack 6.2 one-shot install script | fingul | 37-line script | LOW (reference) | N/A |
| Offline FFmpeg build support | w3sip | release/0.9 branch | LOW | NO |
| Expanded encoder params (QP/SAR/ROI/lossless/slice/VUI/AUD) | muxable | 1a0c3bdc |
MEDIUM | NO |
| Item | Fork | Details | Value |
|---|---|---|---|
| NvBufSurface/NvUtils full migration (JP5+) | bradcagle (nvutils branch) | Decoder + CMake done, encoder partial | MEDIUM (reference) |
| JetPack 4/5 dual-path in encoder | dsleep |
#if JETPACK_VER auto-detect via lsb_release |
MEDIUM (reference) |
| Vendor all NVIDIA sample classes in-repo | dsleep | Eliminates host MMAPI dependency | LOW (different approach) |
Cross-compilation via $TARGET_ROOTFS sysroot |
muxable | aarch64.cmake toolchain + Dockerfile | LOW |
| Pre-built .deb CI pipeline + binary distribution | muxable | GitHub Actions + CPack | LOW |
| Cross-compilation Dockerfile (QEMU, L4T r32.5.0) | mattangus | feature/docker branch | LOW (JP4 only) |
| CMake cflags quoting fix | tmm1 |
428edfec (fancybits branch) |
MEDIUM |
| Yocto/BITBAKE_SYSROOT cross-compile | kazuki0824 | resolve-missing-dep branch (4 commits) | MEDIUM |
| New FFmpeg send_frame/receive_packet API POC | bmegli |
437f8c55 (new-ffmpeg-api branch) |
HIGH (reference) |
| # | Cluster | Issues | Status | Key Links |
|---|---|---|---|---|
| 1 | nvbuf_utils removal / JetPack 5.1.2+ | #115, #120, #123, #126, #134, #136 | UNFIXED upstream; Keylost fixed | NvUtils migration guide |
| 2 | FFmpeg version support 5.x/6.x/7.x | #129, #138 | UNFIXED; PR#132 (new API) | bmegli PR#132 |
| 3 | Encoder latency (old encode2 API) | #131, #7 | UNFIXED; PR#132 implements receive_packet | — |
| 4 | Encoder thread race condition | #130 | UNFIXED; packet_pools unsynchronized | bmegli identified |
| 5 | Missing return statement UB | #127, #98 | UNFIXED; Extend-Robotics fixed |
0229e5ba, 6d327624
|
| 6 | Encoder PTS truncation + circular buffer | #41, #48, #100 | UNFIXED; teplofizik patches exist | patches.zip |
| 7 | YUVJ420P / pixel format issues | #20, #60, #66, #68, #73, #83, #116 | PR#74 open | — |
| 8 | Linesize/stride mismatch crash | #64, #80 | PR#79 MERGED (vietnx) | — |
| 9 | Decoder hangs with IP cameras | #111, #1, #5, #13 | PR#22 MERGED (cgutman) | — |
| 10 | NV12 pixel format support | #11, #73, #133 | PR#25,#26,#27 open (xsacha) | — |
| 11 | setMaxPerfMode missing | #120, PR#125 | UNFIXED; 28→64fps 4K, 46→290fps 720p | — |
| 12 | Memory leaks | #82 | PR#15,#16 MERGED (decoder); encoder leaks open | — |
| 13 | Encoder quality/CRF control | #50, #52, #7, #93 | UNFIXED | — |
| 14 | Wrong output size / green line (mod-16) | #8, #101, #51 | UNFIXED; hardware limit | — |
| 15 | CUDA / zero-copy decode | #62, #67, #92, #93, #121 | UNFIXED | NVIDIA decode-to-CUDA docs |
| 16 | Non-monotonic DTS | #76, #110 | Related to PTS truncation | — |
| 17 | Build issues | #2, #37, #47, #56, #109 | Various | — |
| 18 | VP8 missing definition | #71, #72 | UNFIXED | — |
| 19 | Thread lifecycle / Moonlight | #10, #104 | PR#22,#23 MERGED (cgutman) | — |
| 20 | 10-bit video support | #75, #80 | UNFIXED | — |
| 21 | DMA buffer encode | #117, #118 | UNFIXED | — |
| 22 | Decode in child process | PR#99 | UNFIXED upstream; Keylost fixed | — |
| # | Fix | Source | Commit | Why |
|---|---|---|---|---|
| 1 | Mutex deadlock on EOS | cgutman/cybernhl | 58a977d4 |
Decoder deadlocks if EOS arrives while lock held |
| 2 | delete vs delete[] arrays | cgutman/cybernhl | ff8fd95a |
UB/heap corruption in decoder+encoder |
| 3 | Uninitialized pointer deletion | cgutman/cybernhl | 49d55d10 |
Crash on close if < MAX_BUFFERS used |
| 4 | All frames marked as keyframes | spotai | 1324d7d6 |
Every packet flagged KEY; breaks seek, GOP, rate control |
| 5 | H265 header/IDR unbounded scan | spotai | 2b715e81 |
Unbounded NAL scan can read past buffer |
| 6 | Missing return in encoder cb (UB) | Extend-Robotics | 0229e5ba |
Segfault on L4T 5.1+ |
| 7 | Missing return in decoder cb (UB) | Extend-Robotics | 6d327624 |
Segfault on L4T 5.1+ |
| 8 | glibc 2.34+ pthread_join crash | LanderN | optimize/jetson (3 commits) | Crash on Ubuntu 22.04+ |
| 9 | 4K I-frame buffer overflow | GlassBil | cuda_buffers branch | 4MB chunk too small for 4K I-frames |
| # | Feature/Fix | Source | Reference | Why |
|---|---|---|---|---|
| 10 | Decoder hang on close without data | cgutman/cybernhl | 00455615 |
Indefinite hang if opened+closed without frames |
| 11 | Low-latency blocking wait | cgutman/cybernhl | caac9899 |
condition_variable for AV_CODEC_FLAG_LOW_DELAY |
| 12 | Dynamic bitrate + force IDR APIs | muxable | 1a0c3bdc |
Runtime encoder control without teardown |
| 13 | Zero-copy DMA-BUF pipeline | YuriiHoliuk | 26 commits | get_frame_fd/put_frame_fd + DRM_PRIME |
| 14 | VIC hardware scale filter | YuriiHoliuk | vf_scale_vic.c | Zero-copy hardware resize in decode pipeline |
| 15 | hwcontext_nvmpi (FFmpeg HW type) | mguzzina | 6 commits (WIP) | Proper FFmpeg GPU pipeline integration |
| 16 | setMaxPerfMode(1) | LanderN/douo | one-liner | 4K HEVC: 28→64fps; 720p H264: 46→290fps |
| 17 | CUDA buffer return API | GlassBil | cuda_buffers branch | Decoded frames stay on GPU |
| 18 | P010 10-bit decode | YuriiHoliuk | 4aab1b56 |
10-bit HEVC decode support |
| 19 | Configurable pool sizes | spotai | cf0560b5 |
frame_pool_size + packet_pool_size options |
| 20 | Decoder crash-on-exit fix | w3sip | 49039f81 |
Cleanup queued buffers in destructor |
| 21 | YUVJ420P→YUV420P remapping | bradcagle | 67e7bbcd |
Fixes MJPEG-source decode |
| 22 | JetPack 6 path auto-detection | nhahn | single commit | /tegra vs /nvidia conditional CMake |
| # | Item | Source | Why |
|---|---|---|---|
| 23 | Decoder resize option (-resize WxH) | madsciencetist | HW BlockLinear→PitchLinear "free" resize |
| 24 | dlopen lazy-loading libnvmpi.so | YuriiHoliuk | Prevent EGL crash at startup |
| 25 | Expanded encoder params (QP/SAR/ROI/lossless) | muxable | Expose more hardware capabilities |
| 26 | Wrong color format ABGR32→XRGB32 | dsleep 018e6e2e
|
RGBA→YUV converter fix |
| 27 | Encoder hang fix (unique_ptr) | dsleep 17443b0e
|
Safer encoder lifecycle |
| 28 | JPEG decode prototype | bradcagle cd9bf72e
|
Reference for JPEG feature |
| 29 | Optional NVMPI build (#if CONFIG_NVMPI) | cgutman b015913a
|
Build FFmpeg without nvmpi |
| 30 | NV12 pixel format support | xsacha patches | Native HW format exposure |
| 31 | Encoder PTS truncation fix | teplofizik | Non-monotonic DTS in FLV/RTMP |
| 32 | Encoder memory leaks | vietnx a8edb1c1
|
Unfixed in both upstreams |
| 33 | Encoder poc-type=2 (zerolatency) | Extend-Robotics 96803164
|
Display order = decode order |
| 34 | NvBufferSession lifecycle fix | dthk-cogmatix | Decoder capture loop correction |
| 35 | insert_vui for FPS info | vietnx fdbb815a
|
FPS metadata in stream |
| Item | Source | Notes |
|---|---|---|
| Vendor NVIDIA sample classes | dsleep | Different approach; we use devcontainer mounts |
| Cross-compilation sysroot | muxable | We target native Jetson builds |
| CPack .deb packaging | muxable, jkms, Extend-Robotics | Evaluate later for distribution |
| NixOS flake.nix | therishidesai | Niche platform |
| JetPack 4/5 dual-path | dsleep | CMake auto-detect handles this |
| Full decoder refactor | w3sip feat/dq | Code quality improvements; too divergent to cherry-pick |
-
237 forks total: ALL enumerated, ALL had branches checked via
gh api repos/{owner}/{repo}/branches - 62 active forks (initial triage): ALL analyzed — commits, ALL branches, issues, PRs, comments, refs followed
- 8 hidden-branch forks (found during mirror sweep): ALL analyzed — 3 new findings (bmegli, tmm1, kazuki0824), 5 duplicates of known
- 164 verified mirrors: Confirmed master-only, 0 ahead on all branches, 0 issues, 0 PRs
- 2 upstream repos: ALL issues (159 total), ALL PRs (41 total), ALL comments, ALL external links followed
- Total forks with unique work: 70 (62 + 8 hidden-branch)
- Total verified empty: 164
- Total trivial (README/docs only): ~10 (Tantael, dlavrantonis, coupdair, etc.)
- Grand total checked: 237/237 (100%)
🏠 Home · 📦 Repository · 🐞 Issues · 🏷 Releases · 📋 README · 📝 CHANGELOG
Documentation lives in this wiki. To change a doc, edit the relevant wiki page (clone jetson-ffmpeg.wiki.git) — the docs/ folder in the repo has been retired.
📦 Usage & Runtime
❓ FAQ
- Overview
- Hardware & Platform
- Versions & Compatibility
- Build & Install
- Performance
- Features & Fork Differences
🛠 Development
⚙️ CI / Infrastructure
- GitHub Actions
- GitLab CI
- GitHub Runner — Manual
- GitHub Runner — Kubernetes
- GitLab Runner — Manual
- GitLab Runner — Kubernetes
- Release Process
🔬 Project / Fork Analysis