Skip to content

Cum să convertești formate video cu elementul videoconvert în GStreamer

DodaTech Updated 2025-01-15 1 min read

In this tutorial, you'll learn about Cum să convertești formate video cu elementul videoconvert în GStreamer. We cover key concepts, practical examples, and best practices.

În acest ghid vei învăța cum să convertești formate video folosind elementul videoconvert în GStreamer. Videoconvert transformă între diferite spații de culoare și formate de pixeli (RGB, YUV, etc.), fiind esențial pentru compatibilitatea între elemente.

The Wrong Way

Conectarea directă a elementelor care produc formate incompatibile:

gst-launch-1.0 videotestsrc ! autovideosink

Uneori funcționează (autovideosink include videoconvert intern), dar când folosești encoder-e specifice, lipsește conversia explicită.

The Right Way

Conversie explicită între videotestsrc și encoder:

gst-launch-1.0 videotestsrc ! videoconvert ! "video/x-raw, format=I420" ! x264enc ! mp4mux ! filesink location=test.mp4

Output:

Setting pipeline to PAUSED ...
Setting pipeline to PLAYING ...

Videoconvert convertește automat spațiul de culoare de la videotestsrc la I420, formatul așteptat de x264enc.

Testare cu format RGBA:

gst-launch-1.0 videotestsrc ! videoconvert ! "video/x-raw, format=RGBA, width=640, height=480" ! videoconvert ! autovideosink

Prevenție

  • Plasează videoconvert întotdeauna între elemente care produc video brut și elemente care consumă
  • Specifică formatul țintă prin capabilități după videoconvert
  • Poți stivui multiple videoconvert, dar este ineficient — specifică formatul exact
  • Folosește gst-inspect-1.0 videoconvert pentru a vedea formatele suportate

Greșeli Comune

  1. Videoconvert redundant — nu este necesar între elemente care folosesc același format
  2. Format țintă incorect — specificarea unui format pe care videoconvert nu-l poate produce
  3. Lipsa videoconvert — cauzează erori de negociere ("cannot negotiate caps")
  4. Conversie inutilă — fiecare conversie adaugă cost computațional

FAQ

### Ce formate suportă videoconvert?

Suportă majoritatea formatelor comune: I420, YV12, NV12, NV21, RGB, BGR, RGBA, BGRA, ARGB, ABGR, GRAY8, YUY2, UYVY și multe altele.

Videoconvert face scaling?

Nu, pentru redimensionare video folosește videoscale. Videoconvert convertește doar spațiul de culoare și formatul pixelilor.

Care este diferența dintre videoconvert și videoscale?

videoconvert schimbă formatul pixelilor/spațiul de culoare, iar videoscale schimbă dimensiunea imaginii.

Construit de dezvoltatorii Doda Browser, DodaZIP și Durga Antivirus Pro. Uneltele DodaTech se integrează perfect cu GStreamer pentru productivitate și securitate sporite.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro