Video grabbing
Vladimír Macek
macek na sandbox.cz
Sobota Duben 17 23:39:52 CEST 2021
Ahoj,
se zachytáváním a zpracováním videa nemám moc zkušeností. Mám ale od svých
přátel asi padesát VHS-C kazet k nagrebování. Mám USB grabber a podařilo se
mi doladit tento příkaz:
ffmpeg -f v4l2 -i /dev/video1 -f pulse -i default -vf yadif output.mpg
Ten yadif pěkně odstraní prokládání (interlacing).
Výstup příkazu jsem dal do přílohy stejně jako výstup mplayer -identify.
Leze z toho slušné video s dobře syncnutým audiem. Přijatelné - samozřejmě
vzhledem k době a tehdejší technice.
Mohl bych rovnou začít, ale uvažuju dopředu:
Těch kazet je hodně a zčásti jsou nenahrané. Do přehrávače chci sázet jednu
za druhou a jen pouštět grabbing. Pak ať si z toho kamarádka vystříhá
zajímavé věci.
Můžu zkušenější z vás požádat o další volby ffmpeg, které by to jednak
případně mohly nějak vylepšit, udělaly to praktičtějším? Tedy taky jaký
vhodný výstupní formát a jeho parametry zvolit?
Měl jsem takovou představu, že by se to rovnou rozumně komprimovalo
ztrátově, ale stále dalo později stříhat bez rekomprese. Je taková možnost?
Pokud ano, jakým nástrojem v Linuxu nebo Windows?
Nebo mám ukládat bezeztrátově pro ten pozdější střih? Pokud ano, jakými
volbami?
Máte nějaká další doporučení?
Díky!
Vláďa
------------- další část ---------------
$ ffmpeg -f v4l2 -i /dev/video1 -f pulse -i default -vf yadif output.mpg
Input #0, video4linux2,v4l2, from '/dev/video1':
Duration: N/A, start: 1446436.531689, bitrate: 165888 kb/s
Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 720x576, 165888 kb/s, 25 fps, 25 tbr, 1000k tbn, 1000k tbc
Guessed Channel Layout for Input Stream #1.0 : stereo
Input #1, pulse, from 'default':
Duration: N/A, start: 1618689157.491766, bitrate: 1536 kb/s
Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg1video (native))
Stream #1:0 -> #0:1 (pcm_s16le (native) -> mp2 (native))
If you want the mpeg file to be compliant to some specification
Like DVD, VCD or others, make sure you set the correct buffer size
Output #0, mpeg, to 'output.mpg':
Metadata:
encoder : Lavf58.45.100
Stream #0:0: Video: mpeg1video, yuv420p, 720x576, q=2-31, 200 kb/s, 25 fps, 90k tbn, 25 tbc
Metadata:
encoder : Lavc58.91.100 mpeg1video
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
Stream #0:1: Audio: mp2, 48000 Hz, stereo, s16, 384 kb/s
Metadata:
encoder : Lavc58.91.100 mp2
$ mplayer -identify output.mpg:
ID_VIDEO_CODEC=ffmpeg1
ID_DEMUXER=mpegps
ID_VIDEO_FORMAT=0x10000001
ID_VIDEO_BITRATE=0
ID_VIDEO_WIDTH=720
ID_VIDEO_HEIGHT=576
ID_VIDEO_FPS=25.000
ID_VIDEO_ASPECT=0.0000
ID_AUDIO_FORMAT=80
ID_AUDIO_BITRATE=0
ID_AUDIO_RATE=0
ID_AUDIO_NCH=0
ID_START_TIME=0.53
ID_LENGTH=0.00
ID_SEEKABLE=1
ID_CHAPTERS=0
Další informace o konferenci Linux