Jakiś czas temu pobrałem kilka filmów flv i podczas ich oglądania zatrzymują się w pewnym momencie. Jeśli pominę ten punkt, grają dalej dobrze, aż do następnego punktu, który mogę ponownie pominąć (a cykl trwa do końca filmu)

Już próbowałem

avconv -i input.flv -acodec copy -vcodec copy -g 1 output.flv

Zgodnie z moim zrozumieniem, czytając wiele bezużytecznych postów dotyczących tego problemu, w moich metadanych nie ma żadnych klatek kluczowych, a następnie zatrzymuje się, gdy pojawia się zła klatka.

Próbowałem ustawić -g wyżej, ale output.flv zatrzymuje się w tym samym miejscu, w którym oryginalny plik zatrzymuje się po raz pierwszy. Czy jest jakieś narzędzie, które może to naprawić.

Nie pamiętam, gdzie znajdują się oryginalne linki, a ponowne pobranie nie wchodzi w grę, a jak widać, moje próby ponownego kodowania nie powiodły się.

Używam Linux Ubuntu, więc nie mogę używać dostępnych narzędzi Windows.

EDYTUJ

Po wielu zmaganiach nadal nie udało mi się naprawić pliku.

Myliłem się w moim założeniu, że problemem są MetaData. Po wypróbowaniu szeregu narzędzi stwierdziłem, że większość z nich zatrzymała się wraz z End of File (w środku pliku).

Metadane są tym, czym powinny być. (Udało mi się go wyodrębnić). Wygląda na to, że strumienie są skorumpowane. Próbowałem ponownego miksowania, ponownego kodowania i wstrzykiwania MetaData żaden z nich nie działał, wytworzył plik, który nadal utknął w tym samym miejscu lub po prostu strumień aż do złego miejsca.

Mój problem jest dokładnie taki sam, jak wymieniony tutaj: link

Każda pomoc byłaby bardzo mile widziana. Podejmę każde rozwiązanie, nawet jeśli będę musiał wyciąć kawałek pliku za pomocą edytora szesnastkowego. (Próbowałem usunąć to, co uważałem za złe, ale to spowodowało, że w ogóle nie grało)

Mam teraz do dyspozycji komputer z systemem Windows, więc uruchamianie narzędzi systemu Windows nie stanowi już problemu.

flv
5
Xonar 19 październik 2012, 17:18

2 odpowiedzi

Najlepsza odpowiedź

Naprawiłem to.

Nie jest to rozwiązanie, na które liczyłem, ale udało mi się podzielić plik na inny bit za pomocą avconv

avconv -ss "$TIME" -i "$IN" -vcodec copy -acodec copy "$OUT"."$PART".mkv

Umieszczenie ss przed plikiem wejściowym spowodowało, że używał klatek kluczowych, aby przeskoczyć do właściwej lokalizacji, a następnie nie wpadł na uszkodzony bit i nie uległ awarii. Po każdym uszkodzonym bicie powtarzałem poprzedni krok z nowym $TIME.

W końcu dodałem wszystkie bity razem z opcją avconv concat i teraz działa. Po dotarciu do poprzedniego uszkodzonego fragmentu filmy przeskakują nieco do przodu, ale to jest w porządku.

3
Xonar 14 styczeń 2013, 17:52

Mam wiele starych plików FLV, które ffmpeg zatrzymuje się zaraz po uruchomieniu, dzięki czemu działa poprawnie za pomocą

ffmpeg -flv_ignore_prevtag 1 -i file.flv -c ...

Sprawdź https://ffmpeg.org/ffmpeg-all.html#flv_002c-live_005fflv< /a> więcej informacji

1
Micael Silva 28 czerwiec 2020, 19:29