GNU/Linux >> Znalost Linux >  >> Linux

Jak získám počet snímků ve videu na příkazovém řádku linuxu?

ffprobe lze použít k získání informací o mediálním souboru:

ffprobe -select_streams v -show_streams input.avi

Podrobnosti o streamu získáte:

nb_frames=159697

Hledejte nb_frames s grep :

ffprobe -select_streams v -show_streams input.avi 2>/dev/null | grep nb_frames | sed -e 's/nb_frames=//'

To funguje pro avi, mp4 a atd. U některých kontejnerů to neukazuje platnou hodnotu, např. mpeg.

V takovém případě to funguje ffprobe -show_packets a.mpg 2>/dev/null | grep video | wc -l


Je to hrozné, hloupé a pomalé, ale zdá se, že to funguje:

ffmpeg -i foo.avi -vcodec copy -f rawvideo -y /dev/null 2>&1 | tr ^M '\n' | awk '/^frame=/ {print $2}'|tail -n 1

Bude také fungovat přímo na zkrácených souborech a nezpracovaných streamech (proto za soubory .vob nic nedostanete)


Napsal jsem to na jinou otázku. Pomocí tcprobe nástroj (z transcode balení), počet rámečků je uveden v info. Použijte -i přepněte pro získání výpisu informací ze souboru:

$ tcprobe -i foo.avi
[tcprobe] RIFF data, AVI video
[avilib] V: 29.970 fps, codec=XVID, frames=38630, width=512, height=384
[avilib] A: 48000 Hz, format=0x55, bits=16, channels=2, bitrate=128 kbps,
[avilib]    53707 chunks, 21768720 bytes, VBR
[tcprobe] summary for foo.avi, (*) = not default, 0 = not detected
import frame size: -g 512x384 [720x576] (*)
       frame rate: -f 29.970 [25.000] frc=4 (*)
      audio track: -a 0 [0] -e 48000,16,2 [48000,16,2] -n 0x55 [0x2000] (*)
                   bitrate=128 kbps
           length: 38630 frames, frame_time=33 msec, duration=0:21:28.954

Všimněte si, že počet snímků je zde uveden na dvou řádcích (2. výstupní řádek a poslední výstupní řádek).


Linux
  1. Jak získat počet souborů v adresáři pomocí příkazového řádku?

  2. Jak pomocí příkazu Linux „cat“ zobrazit pouze určité řádky podle čísla?

  3. Linux – Jak nabootovat Puppy Linux Slacko do příkazového řádku?

  1. Jak zobrazit konkrétní řádky souboru v příkazovém řádku Linuxu

  2. Jak mohu získat rozlišení (šířku a výšku) pro video soubor z příkazového řádku linuxu?

  3. Jak předat argumenty příkazového řádku běžícímu procesu na systémech unix/linux?

  1. Jak získat počet CPU v Linuxu pomocí C?

  2. Jak mohu získat datový tok videa z příkazového řádku v Linuxu?

  3. Jak získat počet fyzických disků v Linuxu?