2011-11-27 31 views
24

Wiem, że jest to możliwe z FFMPEG, ale co zrobić, jeśli mam częściowy plik (jak bez początku i końca). Czy jest możliwe wyodrębnienie z niego niektórych klatek?Wyodrębnianie klatek z MP4/FLV?

Odpowiedz

61

Polecenie

ffmpeg -ss 00:00:25 -t 00:00:00.04 -i YOURMOVIE.MP4 -r 25.0 YOURIMAGE%4d.jpg 

będzie wydobywanie

  • zaczynając drugi 25 [-p 00:00:25]
  • zatrzymania po drugim 0,04 [t 00: 00: 00.04 ]
  • odczyt z pliku wejściowego YOURMOVIE.MP4
  • przy użyciu tylko 25,0 klatek na sekundę, i. mi. jedna klatka co 1/25 sekundy [-R 25,0]
  • jako obrazy JPEG z nazwiskami YOURIMAGE% 04d.jpg, gdzie% 4d jest 4-cyfrowy numer autoincrement z wiodącymi zerami

Sprawdź film dla framerate przed zastosowaniem opcji [-r], to samo dotyczy [-t], chyba że chcesz wyodrębnić ramki z niestandardową stawką.

Nigdy nie próbowałem tego z przyciętym (uszkodzonym?) Plikiem wejściowym. Warto spróbować.

+4

Jak określić jakość wyodrębnionych obrazów JPG? – Rasoul

+0

Dzięki dawg, to zrobiło to w mojej wtyczce mediadrop (https://github.com/docdawning/mediadrop-handbrake-bot). –

+4

użyj '-q: v 2', aby uzyskać najlepszą jakość (http://stackoverflow.com/questions/10225403/how-can-i-extract-a-good-quality-jpeg-image-from-an-h264 -video-file-with-ffmpeg) – chiliNUT

1

Może to być BARDZO trudne. Format pliku MP4 zawiera atom "moov", który ma wskaźniki do "próbek" audio i wideo. Jeśli fragment pliku MP4 nie ma atomu moov, twoja praca byłaby znacznie bardziej skomplikowana. Musiałbyś rozwinąć logikę, aby zbadać atom "mdat" (który zawiera wszystkie próbki audio i wideo) i wykorzystać wykształcone domysły, aby znaleźć granice audio i wideo.

Co gorsza, bez atomu moov, nie będziesz potrzebował SPS i PPS do dekodowania plasterków. Musiałbyś syntetyzować zamienniki; jeśli znasz kodek używany do tworzenia MP4, możesz być w stanie skopiować SPS i PPS z podobnie zakodowanego pliku; jeśli nie, może to być bolesny proces prób i błędów, ponieważ składnia wycinków (obrazy kodowane w H.264) zależy od wartości określonych w SPS i PPS.

+1

Chociaż twoja odpowiedź jest dobrze poinformowana, w rzeczywistości bardzo proste jest wyodrębnianie ramek i/lub edycja filmów przy użyciu narzędzi takich jak FFMPEG. –

+2

Dayne, ponownie przeczytaj część pytania dotyczącego pliku źródłowego bez początku lub końca. –