Szukam aplikacji, która pomogłaby mi odciąć fragmenty pliku MP4 wydajnie i bezstratnie .
np. czy jest coś, co pozwala mi znaleźć klatkę kluczową i skopiować partię między tą a inną klatką kluczową, bez konieczności ponownego kodowania partii (powolna i stratna) i bez utraty synchronizacji AV?
Przez mp4 rozumiem wideo H264 + audio AAC w kontenerze MP4
Przed h264 dni Avidemux był do tego doskonałym narzędziem, ponieważ możesz ponownie użyć oryginalnych zakodowanych strumieni, co oznacza brak strat i zajmuje tylko kilka sekund, aby utworzyć przyciętą wersję, ale w h264 jest beznadziejny - otwarcie jednego daje dwie opcje: użyj trybu awaryjnego (który znacznie traci synchronizację AV) lub użyj niebezpiecznego trybu, który natychmiast go zawiesza.
AFAIK, Openshot, Kdenlive, Pitivi itp. Zrobią to przez dekodowanie i przekodowywanie (powolne i stratne).
Wydaje się to proste (prawdopodobnie pokazuje tutaj mój brak wiedzy!), Więc zastanawiałem się, czy coś mi umknęło.
źródło
Odpowiedzi:
ffmpeg
ffmpeg -i source.mp4 -ss 00:00:00 -t 00:00:00 -vcodec copy -acodec copy splice.mp4
To zajmie source.mp4 i, używając tych samych kodeków audio i wideo i nie obniżając jakości, zajmie -t czas po -ss czas rozpoczęcia wideo i wyśle splice.mp4
Należy pamiętać, że czas jest bardzo wrażliwy na formatowanie (powyżej jest jedno przykładowe formatowanie). Również w niektórych dystrybucjach
ffmpeg
został zastąpiony przezavconv
. Po prostu uruchom powyższe polecenie i zamień słowo ffmpeg na avconv, aby rozwiązać ten problem.Kolejne doskonałe źródło informacji na ten temat. (Dzięki @pbhj)
źródło
-ss
argumentu, tzn.9:00
Przez 9 minut należy wyrazić, ponieważ w00:09:00
przeciwnym razie jest on dyskretnie ignorowany. Myślę, że ta odpowiedź powinna zostać zaktualizowana do użyciaavconv
, zgodnie z ostrzeżeniem ffmpeg. Dzięki.W Ubuntu 16.04 odpowiednik
ffmpeg
jest polecenieavconv
Aby zainstalować, uruchom:
Przykład wiersza polecenia, aby przyciąć wideo według czasu:
źródło