jak naprawić plik ffmpeg
ffmpeg -i uszkodzony.mp4 -c copy -movflags +faststart naprawiony.mp4-err_detect ignore_err, -fflags +genpts lub pełne rekodowanie -c:v libx264 -c:a aac.  Kluczowe punkty
• Diagnoza: czy problem leży w bibliotece, czy w danych multimedialnych.
• Reinstalacja lub prawidłowa konfiguracja (Audacity, PATH, zależności).
• Remuksowanie bez rekompresji jako pierwsza próba naprawy kontenera.
• Zaawansowane flagi FFmpeg do ignorowania błędów, naprawy PTS, przeniesienia atomu moov.  
1.1. Pobranie i weryfikacja
• Oficjalny build: https://ffmpeg.org (Linux/macOS) lub dystrybucje Gyan.dev / BtbN / Buanzo (Windows).
• Sprawdź SHA-256 plików, uruchom ffmpeg -version – błędy segmentacji lub brak wersji = uszkodzone binaria.  
1.2. Instalacja systemowa
Windows – wypakuj do C:\ffmpeg\; dodaj C:\ffmpeg\bin do PATH.
Linux   – sudo apt install ffmpeg (Ubuntu) lub dnf / pacman / brew.
macOS  – brew install ffmpeg --with-libx264 --with-fdk-aac (Homebrew).  
1.3. Integracja z Audacity (najczęstszy kłopot)
• Uruchom Audacity → Edycja → Preferencje → Biblioteki → Locate.
• Wskaż avformat-6x.dll (Windows) lub libavformat.6*.dylib/so.
• Zwróć uwagę na zgodność architektury (32-/64-bit).  
1.4. Diagnostyka zależności
Windows: Dependency Walker; Linux: ldd ffmpeg; macOS: otool -L.
Brakujące biblioteki = doinstaluj pakiet/systemową .dll/.so lub skompiluj statycznie.  
2.1. Analiza pliku
ffprobe -v error -show_format -show_streams uszkodzony.mp4 – identyfikacja brakujących indeksów, moov, niespójnych PTS.  
2.2. Remuksowanie (bez strat)
ffmpeg -i uszkodzony.mp4 -c copy naprawiony.mp4
• Odtwarza strukturę kontenera, tworzy nowy indeks.  
2.3. Ignorowanie błędów ramek
ffmpeg -err_detect ignore_err -i uszkodzony.mp4 -c copy naprawiony.mp4  
2.4. Naprawa znaczników czasowych
ffmpeg -i uszkodzony.mp4 -c copy -fflags +genpts -avoid_negative_ts make_zero naprawiony.mp4  
2.5. Przeniesienie atomu moov („Moov atom not found”)
ffmpeg -i uszkodzony.mp4 -c copy -movflags faststart naprawiony.mp4  
2.6. Pełne rekodowanie (ostatnia deska ratunku)
ffmpeg -i uszkodzony.mp4 -c:v libx264 -preset slow -crf 18 -c:a aac -b:a 192k naprawiony.mp4  
2.7. Konwersja kontenera
ffmpeg -i uszkodzony.mp4 -c copy naprawiony.mkv – bywa skuteczne, gdy MP4 ma uszkodzone boxy, a MKV toleruje braki.  
2.8. Zewnętrzne narzędzia komplementarne
• Untrunc (rekonstruuje nagłówek MP4 przy pomocy pliku wzorcowego).
• FFmpeg-based GUI (Shutter Encoder, LosslessCut) – łatwiejsza obsługa flag.  
Teoretyczne podstawy
• Kontener (MP4, MKV, AVI) przechowuje tablice czasów (stts), indeksy (mdat/moov).
• Uszkodzenie moov lub kolejności boxów skutkuje błędami odtwarzania.
• FFmpeg potrafi wygenerować brakujące PTS/DTS i przepisać nagłówki bez transkodowania.  
Praktyczne zastosowania
• Odzysk nagrań z kamer akcji po awarii zasilania.
• Naprawa plików pobranych z sieci (brak końcówki strumienia).
• Poprawa kompatybilności z serwisami streamingowymi (faststart).  
• FFmpeg 6.x (2024) – natywne wsparcie dla kodeka SVT-AV1 i rozszerzone opcje -err_detect.
• Paczki „universal build” dla Windows (Gyan.dev) mają włączone x264/x265, libfdk-aac, zlib i obsługę hardware decoders (QSV, NVDEC, V4L2).
• Tendencja: dystrybucje Linux migrują do współdzielonych bibliotek (libavcodec60), przez co starsze programy mogą wymagać przekompilowania.  
• -c copy ≠ transkodowanie – brak utraty jakości, operacja kilkukrotnie szybsza.
• -movflags faststart przenosi tablicę moov przed mdat → streaming natychmiastowy.
• -async 1 wyrównuje audio/video, użyteczne po łączeniu plików o różnych fps.  
• Kodeki AAC, H.264, HEVC są objęte patentami – w niektórych jurysdykcjach wymagają licencji.
• Dystrybucja skompilowanych binariów z obsługą libfdk-aac lub OpenH264 może podlegać ograniczeniom.
• Przetwarzanie nagrań objętych prawem autorskim wymaga zgody właściciela.  
• Zawsze pracuj na kopii pliku – naprawa może pogorszyć stan źródła.
• W przypadku błędów I/O sprawdź SMART dysku; uszkodzenie fizyczne ≠ problem software’owy.
• Do automatycznych testów integracji użyj ffmpeg -f lavfi -i testsrc (wideo) lub sine (audio).  
• Głębokie uszkodzenie strumienia (brak klatek kluczowych) może uniemożliwić 100 % odzysk.
• Rekodowanie poprawi odtwarzalność kosztem jakości i czasu.
• Starsze wersje FFmpeg (<4.x) nie obsługują części opisanych flag.  
• Analiza narzędzia bento4 (mp4fragment, mp4dash) dla diagnostyki boxów stbl.
• Własna kompilacja FFmpeg z flagą --enable-librist do naprawy transportu RTP.
• Testy z biblioteką libav (fork FFmpeg) – porównanie odporności na błędy kontenera.  
Naprawa „pliku FFmpeg” zazwyczaj oznacza: