Invalid data found when processing input Error: ffprobe exited with code 1

I have numerous blocks of this error in my docker compose logs immich-server
immich_server | [Nest] 2 - 10/31/2024, 10:18:40 PM ERROR [Microservices:JobService] Error: ffprobe exited with code 1
...
immich_server | libavutil 59. 8.100 / 59. 8.100
immich_server | libavcodec 61. 3.100 / 61. 3.100
immich_server | libavformat 61. 1.100 / 61. 1.100
immich_server | libavdevice 61. 1.100 / 61. 1.100
immich_server | libavfilter 10. 1.100 / 10. 1.100
immich_server | libswscale 8. 1.100 / 8. 1.100
immich_server | libswresample 5. 1.100 / 5. 1.100
immich_server | libpostproc 58. 1.100 / 58. 1.100
immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x201e6150180] Format mov,mp4,m4a,3gp,3g2,mj2 detected only with low score of 1, misdetection possible!
immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x201e6150180] moov atom not found
immich_server | upload/encoded-video/57a3811b-d285-4a7d-b1fe-cf95946d595f/99/3c/993ca43c-463d-490a-a74b-dfbd72dc6fda-MP.mp4: Invalid data found when processing input
immich_server |
immich_server | at ChildProcess.<anonymous> (/usr/src/app/node_modules/fluent-ffmpeg/lib/ffprobe.js:233:22)
immich_server | at ChildProcess.emit (node:events:519:28)
immich_server | at ChildProcess._handle.onexit (node:internal/child_process:294:12)
immich_server | [Nest] 2 - 10/31/2024, 10:18:40 PM ERROR [Microservices:JobService] Object:
immich_server | {
immich_server | "id": "993ca43c-463d-490a-a74b-dfbd72dc6fda"
immich_server | }
immich_server | [Nest] 2 - 10/31/2024, 10:18:40 PM ERROR [Microservices:JobService] Error: ffprobe exited with code 1
...
immich_server | libavutil 59. 8.100 / 59. 8.100
immich_server | libavcodec 61. 3.100 / 61. 3.100
immich_server | libavformat 61. 1.100 / 61. 1.100
immich_server | libavdevice 61. 1.100 / 61. 1.100
immich_server | libavfilter 10. 1.100 / 10. 1.100
immich_server | libswscale 8. 1.100 / 8. 1.100
immich_server | libswresample 5. 1.100 / 5. 1.100
immich_server | libpostproc 58. 1.100 / 58. 1.100
immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x201e6150180] Format mov,mp4,m4a,3gp,3g2,mj2 detected only with low score of 1, misdetection possible!
immich_server | [mov,mp4,m4a,3gp,3g2,mj2 @ 0x201e6150180] moov atom not found
immich_server | upload/encoded-video/57a3811b-d285-4a7d-b1fe-cf95946d595f/99/3c/993ca43c-463d-490a-a74b-dfbd72dc6fda-MP.mp4: Invalid data found when processing input
immich_server |
immich_server | at ChildProcess.<anonymous> (/usr/src/app/node_modules/fluent-ffmpeg/lib/ffprobe.js:233:22)
immich_server | at ChildProcess.emit (node:events:519:28)
immich_server | at ChildProcess._handle.onexit (node:internal/child_process:294:12)
immich_server | [Nest] 2 - 10/31/2024, 10:18:40 PM ERROR [Microservices:JobService] Object:
immich_server | {
immich_server | "id": "993ca43c-463d-490a-a74b-dfbd72dc6fda"
immich_server | }
12 Replies
Immich
Immich7mo ago
:wave: Hey @TastesLikeShit, Thanks for reaching out to us. Please follow the recommended actions below; this will help us be more effective in our support effort and leave more time for building Immich :immich:. References - Container Logs: docker compose logs docs - Container Status: docker compose ps docs - Reverse Proxy: https://immich.app/docs/administration/reverse-proxy Checklist 1. :ballot_box_with_check: I have verified I'm on the latest release(note that mobile app releases may take some time). 2. :ballot_box_with_check: I have read applicable release notes. 3. :ballot_box_with_check: I have reviewed the FAQs for known issues. 4. :ballot_box_with_check: I have reviewed Github for known issues. 5. :ballot_box_with_check: I have tried accessing Immich via local ip (without a custom reverse proxy). 6. :ballot_box_with_check: I have uploaded the relevant logs, docker compose, and .env files, making sure to use code formatting. 7. :ballot_box_with_check: I have tried an incognito window, disabled extensions, cleared mobile app cache, logged out and back in, different browsers, etc. as applicable (an item can be marked as "complete" by reacting with the appropriate number) If this ticket can be closed you can use the /close command, and re-open it later if needed.
Immich
Immich7mo ago
Successfully submitted, a tag has been added to inform contributors. :white_check_mark:
TastesLikeShit
TastesLikeShitOP7mo ago
I can play all videos on the web browser but not on my mobile app.
Seven7Lemons
Seven7Lemons6mo ago
Ahh, a classic. From my experience it could be one of two options, 1. The video file is corrupted when ffmpeg tries to encode it.
The moov atom is a unique component of the file that specifies the timeline, duration, display properties, and sub-atoms carrying data for each track in the video
2. Its a live photo or a motion photo which might have been perceived as a video file by immich. If its not those two, Its going to be annoying to fix. That moov atom could end up at the end of the video file rendering it corrupt. Now you can try and fix that individual file with some tools like untrunc - https://github.com/ponchio/untrunc Either way you will need to get or access the specific file from the asset name. I personally use the API and use the getAssetInfo method. you can refer the API documentation. Then either getting the file name and searching in immich and then deleting it or trying to fix the corrupt video. I made a script that gets the filename from the assetname and then just delete the live photos.
TastesLikeShit
TastesLikeShitOP6mo ago
Hey, thanks for the response! I see what you are saying. I am not sure if I have 2000 live photos, I will look at these files more closely, so hypothetically what can I conclude if 2000 video files have corupt moov atom?
Seven7Lemons
Seven7Lemons6mo ago
Sure thing, if the file sizes are not small then yea you can assume that. Just take a peak into one of the assets either with the API(easier) or logging in the database to query the asset info. If you need a script template for the API, its simple. This is how I found out the troublesome files, ~/p/d/i/scripts> python immich_getAssetInfo.py
Relevant output:
Enter the asset ID: afc82191-38fd-43a2-9b45-fa991be03d8c
{

"duration": "0:00:00.00000",
"fileCreatedAt": "2024-11-01T02:56:59.000Z",
"fileModifiedAt": "2024-11-01T02:56:59.000Z",
"hasMetadata": true,
"id": "afc82191-38fd-43a2-9b45-fa991be03d8c",
"livePhotoVideoId": null,
"localDateTime": "2024-11-01T02:56:59.000Z",
"originalFileName": "PXL_20220724_224151310.MP.mp4",
"originalMimeType": "video/mp4",

}
Relevant output:
Enter the asset ID: afc82191-38fd-43a2-9b45-fa991be03d8c
{

"duration": "0:00:00.00000",
"fileCreatedAt": "2024-11-01T02:56:59.000Z",
"fileModifiedAt": "2024-11-01T02:56:59.000Z",
"hasMetadata": true,
"id": "afc82191-38fd-43a2-9b45-fa991be03d8c",
"livePhotoVideoId": null,
"localDateTime": "2024-11-01T02:56:59.000Z",
"originalFileName": "PXL_20220724_224151310.MP.mp4",
"originalMimeType": "video/mp4",

}
As you can see even though "livePhotoVideoId": null, the file was a live photo, I just used the "originalFileName" and did a file or extension search in web immihc and deleted the file. I'm sure there are better ways of handling that that I don't know of but that worked for me. If you want to poke around the databse (which they don't recommend), after logging in the docker, sudo docker exec -it immich_postgres /bin/bash and logging in using -- psql -U your_username -d your_database_name, defaults are postgres and immich respectively. And then listing your tables with \dt Then finding the details or file name about that asset: SELECT * FROM assets WHERE id = '<asset_id>'; Then search the filename in immich or your shell and see the troublesome file.
TastesLikeShit
TastesLikeShitOP6mo ago
where them immich_getAssetInfo.py from?
Seven7Lemons
Seven7Lemons6mo ago
It's my python script to use the API, you can use the methods listed here -- https://immich.app/docs/api/get-asset-info
TastesLikeShit
TastesLikeShitOP6mo ago
Gotha, thanks, friend! This is enlightening. ^^
kramttocs
kramttocs5mo ago
When they are a live photo (getting a lot of these that end in -MP.mp4) what's the solution to make immich not perceive them as videos?

Did you find this page helpful?