Jak przycinać pliki OGV bez ponownego kodowania?

5

Więc najpierw trochę tła. Nagrywam filmy za pomocą recordMyDesktop . To nie są opakowania GTK ani QT, używam tylko wiersza poleceń. Polecenie wygląda tak.

recordmydesktop -o file.ogv --full-shots --device=default

Problem polega na tym, że oszczędza Wideo Theora i dźwięk Vorbis w pojemniku OGV. Nie ma alternatyw, których mogę użyć. Mój problem polega na tym, że kończę się na jakiś czas przed i jakiś czas po pożądanym czasie nagrywania. To znaczy czas spędzony na ustawianiu i sprzątaniu. Chcę to usunąć. Więc moje pytanie jest ...

Jak wyodrębnić z filmu sekundy X do Y?

Chcę zachować całą oryginalną jakość. Musi również zostać przesłany na YouTube. Tak naprawdę nie zależy mi na innym formacie, o ile spełnione są te dwa warunki.


Używam Linux Mint (opartego na Ubuntu / Debianie) i mogę zainstalować dowolne potrzebne oprogramowanie, o ile nie muszę go kompilować.


edytować:
Spróbowałem opublikowanego rozwiązania tutaj . Avi, które wyprodukowało, miało dźwięk niezsynchronizowany i po jakimś czasie odrzucono wszystko po pierwszych 30 sekundach.

FakeRainBrigand
źródło

Odpowiedzi:

12

Czy naprawdę nie chcesz się kompilować? To całkiem proste. Śledzić Przewodniki tutaj zainstalować najnowszą wersję FFmpeg. To trwa kilka minut. Możesz także pobrać kompilację statyczną ich stronę pobierania , które musisz wyciągnąć i jesteś gotowy do pracy.

Naprawdę radziłbym, żebyś poszedł na najnowszą wersję, ponieważ wersje dostarczane z Ubuntu (Mint) są prawdopodobnie błędne i naprawdę przestarzałe, a do instalacji potrzebujesz kilku zależności apt-get.

Po pierwsze, możesz wyodrębnić część bez ponownego kodowania czegokolwiek, np. 10 sekund od 01:23:

ffmpeg -ss 00:01:23 -i file.ogv -t 00:00:10 -c copy out.ogv

Jeśli chcesz ponownie zakodować wideo (co powinno pomóc w przypadku problemów z synchronizacją), będzie to coś podobnego w przypadku wideo H.264 i audio AAC (wystarczy skopiować i wkleić wszystko, w tym odwrotny ukośnik):

ffmpeg -ss 00:01:23.450 -i file.ogv -t 00:00:10.000 \
-c:v libx264 -preset slow -c:v aac -strict experimental -b:a 128k out.mp4

Aby uzyskać szczegółowe wyjaśnienie, jakie opcje można tutaj dodać, zaznacz opcję Przewodnik kodowania x264 .

slhck
źródło
Próbuję tego. Wielkie dzięki! (Ja też to kompiluję. Nigdy nie znalazłem przewodnika, który działałby dla mnie wcześniej, ale myślę, że ten będzie.)
FakeRainBrigand
Udało mi się skompilować wszystko (tak!). Uruchomiłem to polecenie jako opublikowane. Wideo i audio są zsynchronizowane. Film wydaje się być poprawny. Dźwięk wydaje się być około 40 sekund z tyłu. Jakieś pomysły? Uwaga: to również około połowy 1:23 ... jeśli to ma z tym coś wspólnego.
FakeRainBrigand
Hm, to dziwne? Możesz spróbować dodać -async 1 opcja.
slhck
Wydaje się, że to naprawiło. Wielkie dzięki. Zamierzam tylko przekonwertować całość i zaakceptować odpowiedź, jeśli wszystko pójdzie dobrze
FakeRainBrigand
Fajne! Dobrze wiedzieć :) Dodano sposób kopiowania bez ponownego kodowania. YouTube może mieć z tym problemy.
slhck