adatok kinyerése videóból

Ha már elkezdtük az ffmpeg-et vizsgálni akkor nézzük meg, hogyan lehet adatokat kinyerni a (de)kódolandó videóból:
ffmpeg -i /utvonal/az/avihoz/fajl.avi

A kimenet nagyjából így fog kinézni:
FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-libvorbis --enable-libtheora --enable-libogg --enable-libgsm --enable-libmp3lame --enable-dc1394 --disable-debug --enable-shared --prefix=/usr
libavutil version: 1d.49.3.0
libavcodec version: 1d.51.38.0
libavformat version: 1d.51.10.0
built on Nov 28 2007 19:39:53, gcc: 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)

Seems stream 0 codec frame rate differs from container frame rate: 30000.00 (30000/1) -> 23.98 (24000/1001)
Input #0, avi, from '/media/stuffs/new/clannad/01 CLANNAD (BS-i DivX6.6 1280x720).avi':
Duration: 00:24:09.9, start: 0.000000, bitrate: 1854 kb/s
Stream #0.0: Video: mpeg4, yuv420p, 1280x720, 23.98 fps(r)
Stream #0.1: Audio: mp3, 48000 Hz, stereo, 192 kb/s
Must supply at least one output file

Nézzük mit kapunk.
Az első néhány sor az ffmpeg készítésekor felhasznált kapcsolók listája és a lib-ek verziója. Az előbbi azért fontos, mert például amikor mp3 hangsávval rendelkező videót szerettem volna készíteni a hangsáv készítését nem engedte mert nem ismerte az enkoder az mp3-at. Kis google-zás után arra jutottam, hogy az ubuntu verzióba nincs beleforgatva a liblame mint enkore (–enable-libmp3lame). Hogy kiderüljön mivel lett forgatva az ffmpeg elég volt azt egyszer lefuttatni. (a bemásolt példa azért megtévesztő mert én azóta készítettem egy saját deb-et amibe beleforgattam).

Következő rész a számunkra igazán fontos. Input #0, vagyis az első bemenő fájl adatai, avi fájltípus és a fájl neve, elérési útja.
Duration: hossz
start: a bemenő fájl melyik pozíciójától szeretnénk feldolgozni.
bitrate: értelem szerűen.
A bemenő fájlnak két adatfolyamja van a példa szerint.
Az első egy videó csatorna, melynek a kodekje (!) mpeg4 és a színpaletta yuv420p (FIXME), felbontás 1280×720, képkockák száma másodpercenként: 23.98.
A második sáv egy 48000 Hz-es, sztereó mp3, mely 192 kb/s -os mintavételezésű.

Egy szintén fontos kapcsoló amit érdemes megjegyezni a -formats.
Ennek a kimenete a következőképpen néz ki:

...
File formats:
E 3g2 3gp2 format
E 3gp 3gp format
D 4xm 4X Technologies format
....
D wsvqa Westwood Studios VQA format
D wv WavPack
DE yuv4mpegpipe YUV4MPEG pipe format

Codecs:
D V 4xm
D V D 8bps
D V VMware video
D V D aasc
....
D A xan_dpcm
D V D xan_wc3
D V D xl
DEV D zlib
DEV zmbv

Supported file protocols:
file: pipe: udp: rtp: tcp: http:
Frame size, frame rate abbreviations:
ntsc pal qntsc qpal sntsc spal film ntsc-film sqcif qcif cif 4cif
Motion estimation methods:
zero(fastest) full(slowest) log phods epzs(default) x1 hex umh iter

A támogatott fájl formátumok, kodekek, protokollok listája.
A fájlformátumok és a kodekek előtt lévű betűk kis magyarázatra szorulnak:
D – dekódolás
E – enkódolás
A – audió
V – videó

A fent említett liblame kapcsoló hiányával például így nézne ki az mp3 sora:
D A mp3
vagyis csak dekódolni tudja, és a megnevezett formátum audió.
Nálam ez így néz ki:
DEA mp3
vagyis dekódolni, enkódolni is tudja az audió formátumot.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.