{"id":17700613,"url":"https://github.com/cdown/jpgfromraw","last_synced_at":"2025-05-13T03:43:51.705Z","repository":{"id":238791084,"uuid":"797573381","full_name":"cdown/jpgfromraw","owner":"cdown","description":"Fast JPEG extractor from RAW files","archived":false,"fork":false,"pushed_at":"2025-04-08T02:04:38.000Z","size":113,"stargazers_count":6,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-01T02:17:50.292Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cdown.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-05-08T05:28:42.000Z","updated_at":"2025-04-07T10:27:51.000Z","dependencies_parsed_at":"2024-11-09T15:00:32.952Z","dependency_job_id":"0045424a-bbc7-41c3-902c-91c13ccf1600","html_url":"https://github.com/cdown/jpgfromraw","commit_stats":null,"previous_names":["cdown/arwtojpg","cdown/rawtojpg","cdown/jpgfromraw"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdown%2Fjpgfromraw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdown%2Fjpgfromraw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdown%2Fjpgfromraw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdown%2Fjpgfromraw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cdown","download_url":"https://codeload.github.com/cdown/jpgfromraw/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253870822,"owners_count":21976610,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-24T17:42:39.536Z","updated_at":"2025-05-13T03:43:51.677Z","avatar_url":"https://github.com/cdown.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jpgfromraw\n\njpgfromraw provides a much faster way to extract embedded JPEGs from RAW files\nthan exiftool's `-JpgFromRaw`. In a directory with 4000 files, jpgfromraw\nextracts JPEGs about 15 times faster than exiftool:\n\n    % rm -rf ~/jfr \u0026\u0026 mkdir -p ~/jfr/{jpgfromraw,exiftool}\n    % sudo sh -c 'sync; echo 3 \u003e /proc/sys/vm/drop_caches'\n    % \\time -v jpgfromraw /mnt/sdcard/DCIM/101MSDCF ~/jfr/jpgfromraw \u003e/dev/null\n        User time (seconds): 2.18\n        System time (seconds): 20.99\n        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:29.72\n        File system inputs: 22956551\n        File system outputs: 22855504\n\n\n    % sudo sh -c 'sync; echo 3 \u003e /proc/sys/vm/drop_caches'\n    % \\time -v exiftool -b -JpgFromRaw -ext arw -r /mnt/sdcard/DCIM/101MSDCF -w ~/jfr/exiftool/%f.jpg \u003e/dev/null\n        User time (seconds): 113.21\n        System time (seconds): 58.15\n        Elapsed (wall clock) time (h:mm:ss or m:ss): 7:52.87\n        File system inputs: 316175244\n        File system outputs: 22864400\n\nThe total size of the output JPEGs is 11.5GiB, so in terms of throughput,\njpgfromraw does ~386MiB/s, and exiftool does ~24MiB/s.\n\nThe key reason jpgfromraw is so much faster is because it very carefully avoids\noverreading into the entire RAW file. exiftool does not do that and suffers\nquite greatly in (useful) throughput as a result. This is achieved through\njudicious use of `madvise` (and similar strategies on other platforms).\n\nOther than that, jpgfromraw also processes multiple files concurrently, which\ncan help a lot on faster devices like CFexpress cards.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdown%2Fjpgfromraw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcdown%2Fjpgfromraw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdown%2Fjpgfromraw/lists"}