Commit Graph

55 Commits

Author SHA1 Message Date
Michael Mayer
43bca10b4e CI: Apply Go linter recommendations to "internal/ffmpeg" package #5330
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-11-22 12:58:11 +01:00
Michael Mayer
94b6631b3d Test: Use PascalCase names for all Go subtests in /internal
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-10-02 14:50:02 +02:00
Michael Mayer
9315e87d45 NVIDIA: Refactor ffmpeg.DefaultAvcEncoder() function
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-30 22:51:10 +02:00
Michael Mayer
e888b0ddb1 FFmpeg: Remove unstable "directory is unwritable" tests
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-27 11:46:27 +02:00
Michael Mayer
bae8ceb3a7 Auth: Support asymmetric JSON Web Tokens (JWT) and Key Sets (JWKS) #5230
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-25 17:52:44 +02:00
Michael Mayer
cb81f9be12 FFmpeg: Add descriptions to encoder packages in internal/ffmpeg/
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-25 14:20:35 +02:00
Michael Mayer
61ced7119c Auth: Refactor cluster configuration and provisioning API endpoints #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-24 08:28:38 +02:00
Michael Mayer
91804b9652 Backend: Improve Copy()/Move() and increase pkg/internal test coverage
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-22 03:07:51 +02:00
Michael Mayer
c36bb566af Videos: Refine still image extraction with ffmpeg #5189
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-03 11:44:09 +02:00
Michael Mayer
ff2c3b9559 Videos: Skip non-keyframes when extracting images with FFmpeg #5189
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-09-01 18:02:23 +02:00
Michael Mayer
10f15431ff Videos: Set timestamps to zero when remuxing containers to MP4 #4982
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-06-30 09:35:26 +02:00
Michael Mayer
2e2ebab433 Videos: Improve downloading, remuxing, and transcoding #4982 #4892 #5040
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-06-09 15:31:23 +02:00
graciousgrey
1a794da1fe Tests: Add unit tests #4969 2025-05-07 12:03:50 +02:00
Michael Mayer
8faf3fc918 Import: Add ytdl package for downloading videos from URLs #4982
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-05-02 10:04:34 +02:00
Michael Mayer
eb4fc032ff Config: Add preset, quality, and device options for FFmpeg #4969
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-04-27 14:36:36 +02:00
Michael Mayer
f73b703123 Videos: Increase transcoding bitrate limit default to 60 Mbps #1307
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-04-24 11:59:29 +02:00
Michael Mayer
a76bbba2a6 FFmpeg: Fix Intel Quick Sync Video (QSV) hardware transcoding #4382
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-28 16:31:20 +01:00
Michael Mayer
67811d87fa Videos: Create fragmented MP4s when transcoding with FFmpeg #4892
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-24 20:47:57 +01:00
Michael Mayer
df09c78ee1 Videos: Add "codec" search filter and auto-enable nvidia encoder #4848
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-10 14:30:25 +01:00
Michael Mayer
9d1c97425c FFmpeg: Refactor internal/ffmpeg/transcode_cmd.go #4604
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-09 10:38:56 +01:00
Michael Mayer
e2195d535e FFmpeg: Refactor extraction of JPEG and PNG images from videos #4604
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-09 10:24:53 +01:00
Michael Mayer
bbb30e6a33 FFmpeg: Add tests, refactor package, and split into sub-packages #4604
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-08 18:27:33 +01:00
Michael Mayer
fdddf37704 FFmpeg: Add "-strict -2" command flag to allow transcoding of VVC videos
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-01-05 17:04:45 +01:00
Michael Mayer
e2a7e50ca4 FFmpeg: Add filter "format=nv12" for Intel QSV video transcoding #4380
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-07-07 07:48:59 +02:00
Michael Mayer
ad92443585 Videos: Update assertions in internal/ffmpeg/convert_test.go #4181
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-05-30 10:12:03 +02:00
Michael Mayer
2e644809f4 Video: Fix bitrate flag value in convert_test.go #4030 #4052
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-02-07 18:17:41 +01:00
Michael Mayer
cb232be687 Video: Remove vpp_qsv=framerate from Intel QSV filter #4030 #4052
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-02-07 17:37:59 +01:00
Michael Mayer
f0e25cb1e9 Video: Add filter to Intel QSV FFmpeg transcoding flags #4030 #4052
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-02-07 17:25:57 +01:00
Michael Mayer
9264a7f754 Video: Enable full hardware transcoding for Intel CPUs #4030 #4052
TODO: The (optional) video downscaling filter has been commented out
and must be re-added before releasing these changes.

Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-02-07 15:59:05 +01:00
Michael Mayer
0ca37b2c92 Docs: Update year in backend and frontend package file headers
Signed-off-by: Michael Mayer <michael@photoprism.app>
2024-01-05 16:38:36 +01:00
Michael Mayer
529103462c Index: Add native support for MP4 and Samsung/Google Motion Photos #439
Related Issues:
- Samsung: Initial support for Motion Photos (#439)
- Google: Initial support for Motion Photos (#1739)
- Metadata: Flag Samsung/Google Motion Photos as Live Photos (#2788)

Related Pull Requests:
- Live Photos: Add Support for Samsung Motion Photos (#3588)
- Samsung: Improved support for Motion Photos (#3660)
- Google: Initial support for Motion Photos (#3709)
- Google: Add support for Motion Photos (#3722)

Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-09-22 23:59:56 +02:00
Michael Mayer
4154649c76 FFmpeg: Remove deprecated "-vsync vfr" command flag #3659
See issue comments for details. This also introduces a package constant
for the default ffmpeg command name and updates the tests.

Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-09-06 11:27:24 +02:00
graciousgrey
b5b13b0fbb Tests: Add unit tests 2023-07-20 20:06:27 +02:00
graciousgrey
4727f769d2 Tests: Add unit tests 2023-07-20 20:02:02 +02:00
Michael Mayer
3cf1c699df Video: Refactor FFmpeg Transcoding Size Limit #3466 #3498 #3549
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-07-18 15:15:04 +02:00
Michael Mayer
cc5ff21b4a Video: Add transcoding libs and improve error handling #3466
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-07-15 15:17:41 +02:00
Lukas
19ac83dd20 Config: Downscale videos based on largest dimension (#3510)
* Adds resolution limit

* Fixes 2 video filters and makes the env variable work

* Adds FFMPEG_RESOLUTION to all the docker-compose files

* Makes the resolution based on the longer side

* Fixes failing test
2023-06-29 10:07:47 +02:00
Lukas
83d10ea00e Config: Add video transcoding resolution option (#3498)
* Adds resolution limit

* Fixes 2 video filters and makes the env variable work

* Adds FFMPEG_RESOLUTION to all the docker-compose files
2023-06-28 15:22:52 +02:00
Michael Mayer
157c6c723a FFmpeg: Allow selection of specific video and audio streams #3284
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-03-14 18:00:55 +01:00
ghostwheel
9762150da6 Changed audio conversion to only use one stream
0:a means take all audio streams of first file. 0🅰️0 means first stream of first file. 0🅰️0? means first audio stream of first file if available.
2023-03-14 15:32:37 +01:00
ghostwheel
7e843808ca Added map for audio stream, too
It seems that if -map is used for video (-map 0✌️0) then a map is also needed for audio, otherwise no audio is produced.
2023-03-14 07:15:59 +01:00
Micah
240393d8b6 Update convert.go
When I upgraded my phone to the Google Pixel 7, I noticed that the videos it takes have an extra video stream in them for their compressed HVC1 implementation. This means that all software transcoding of that format would fail, as it was transcoding the wrong video stream. This alteration fixed the issue for me, and will likely avoid video files with multiple video streams causing issues in the future.
2023-03-02 14:14:31 +01:00
Michael Mayer
eaff0abb6d Videos: Index and display durations of less than one second #3224
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-02-22 16:33:33 +01:00
Michael Mayer
527fc0319e Index: Add experimental support for JPEG XL and APNG files #668 #3197
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-02-14 14:43:49 +01:00
Michael Mayer
97c9962053 Index: Add experimental EPS and SVG vector graphics support #1177 #2207
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-02-11 20:18:04 +01:00
Michael Mayer
a5a538a67e Links: Change https://photoprism.app/ to https://www.photoprism.app/
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-02-08 09:07:42 +01:00
Michael Mayer
4066cd7ad1 Update year in copyright notices
Signed-off-by: Michael Mayer <michael@photoprism.app>
2023-01-11 16:43:01 +01:00
Michael Mayer
06744f356c Video: Change FFmpeg params for NVidia hardware transcoding #2613
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-11-03 16:18:04 +01:00
blue-kaleidoscope
c2e1989dad Added VAAPI encoder support 2022-09-28 10:03:53 +02:00
Michael Mayer
b072a18a17 Backend: Run "make fmt" with Go v1.19
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-08-10 16:09:21 +02:00