Nincsenek semmilyen ismereteim a videó kódolásáról, van egy alkalmazásom, amely OpenGL-be van írva, és I a létrehozott képkockákat png képekbe mentem. Az alkalmazásom képkockái 7 FPS-esek, és ezekből próbálok videót készíteni.

Ebből a célból az ilyen ffmpeg-et használom

ffmpeg -framerate 30 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4

amelyet erről a webhelyről készítettek , azonban kíváncsi voltam, van-e olyan videó, amely bemutatja az animációt 30 kép / mp sebességgel?

Megjegyzések

Válasz

Az alábbi kódot használom ugyanahhoz a művelethez.

ffmpeg -framerate 30 -i img%03d.png -c:v libx264 -pix_fmt yuv420p -crf 23 output.mp4 

A parancs lebontása:

ffmpeg <- call ffmpeg -framerate 30 <- set the input framerate to 30 -i img%03d.png <- read PNG images with filename img001, img002, img003, etc.. img can be changed to another prefix %03d can be changed to %04d for 0001, %05d for 00001 formats, etc... -c:v libx264 <- Set the codec to libx264 -pix_fmt yuv420p <- Set the pixel format to planar YUV 4:2:0, 12bpp -crf 23 <- set the Constant Rate Factor to 23 (default value) -output.mp4 <- the output filename 

Ez 30 fps sebességgel olvassa be a bemenetet (a -framerate 30 opció) és kódolja a libx264 kodek segítségével, a 23-as állandó sebességi tényezővel (a -crf 23 opció).

Válasz

Két képkockasebességet kell figyelembe venni: a bemenetet és a kimenetet.

Alapértelmezés szerint a bemeneti képkockasebesség 25 , és a kimenet ugyanazt a képkockasebességet fogja használni, mint a bemenet, hacsak másképp nem mondja meg.

Ugyanaz a képkockasebesség a bemenetnél és a kimenetnél

Ha meg szeretné adni és a kimenet ugyanazon képkockasebességgel rendelkezik, akkor csak adja meg a bemeneti képkockasebességet. Ez a példa 30000/1001 (NTSC videó) képkockasebességet állít be:

ffmpeg -framerate 30000/1001 -i input output.mp4 
  • Alternatív megoldásként ebben a példában használhatja ntsc a 30000/1001 helyett, de ne használja a 29.97 -et, mert ez nem pontos vagy Helyes. Lásd a többi képsebesség-álnevet .

  • Mivel az alapértelmezett bemeneti képkockasebesség 25, és ha csak egy kimeneti képkockasebességet állítson be, akkor a képkocka kompenzáció céljából eldobásra vagy duplikálásra kerül. Ezért van beállítva a bemeneti képkockasebesség ebben a helyzetben.

Különböző képkockasebesség és kimenet

Előfordulhat, hogy a bemeneti képkockasebesség és a kimeneti képkockasebesség eltér egymástól. Például érdemes beírni a képkockákat bizonyos sebességgel, majd megismételni vagy eldobni a képkockákat, hogy a kimenet eltérő képkockasebesség. Ezt a kimeneti formátumtároló, a lejátszó és / vagy az eszköz kompatibilitási problémái miatt érdemes megtennie:

  • Ebben a példában a keretek duplikálva lesznek 10-ről 25-re. A konzol kimenete megmondja, hogy a kereteket eldobják vagy megkettőzik-e.

  • A képfájl-demuxer a -framerate -et használja, míg a kimeneti képkockasebesség a -r használatával állítható be.

  • Lehet, hogy hozzá kell adnia a -pix_fmt yuv420p beállítást a bizonyos körülmények között, ha újból kinyomtatja a H.264-es videót (a ffmpeg konzol kimenete figyelmeztet, ha szükséges). Ez egy chroma részmintavételi sémát fog használni, amely kompatibilis az összes játékossal.

Megjegyzések

  • ffmpeg 3.2.2 verzió mondja: Option framerate not found. 🙁
  • Igen, igazad van. De ennek ellenére a -framerate opció nem létezik már törlöm a megjegyzésemet, mivel annak valójában semmi köze ahhoz, hogy egy képsorozatot videofájlokká alakítson át bizonyos képkockasebességgel.
  • @erik -framerate létezik. ' s, amelyeket a kép és a rawvideo demuxerek, valamint egyes beviteli eszközök, például az x11grab és a v4l2 használnak.
  • Hol van a dokumentálva? El ' olvastam a man ffmpeg oldalt, de nem tudtam ' nem találja. Van esetleg mutató?
  • Rendben, megtalálta … FFMPEG-DEVICES(1).

Válasz

ffmpeg -framerate 30 -i img%03d.png output.mp4 

a későn elegendő lesz Az ffmpeg t verziója.

Megjegyzések

  • Ne felejtsd el a -pix_fmt yuv420p fájlt, különben fájlok juthatnak a fájlhoz hogy sok szoftvereszköz nem ' tetszik: trac.ffmpeg.org/ticket/8856

Válasz

Videó interpolációjáról beszél. Nincs mód arra, hogy a 7 kép / mp sebesség 30 képkocka / másodperc legyen videóinterpoláció nélkül … Alapvetően 30fps-t szeretne kapni a kezdetektől, a videók készítése során … Mivel a videóinterpoláció sok erőforrást és időt vesz igénybe, és ez leletekkel kell megtölteni.Úgy hallottam, hogy egyetlen felvételt készíthet rövid filmekké, Adobe-val, de sok kézi munka ott …

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük