ASametYildirim adlı üyeden alıntı: mesajı görüntüle
Merhaba hocam.

Video neden yeşil ve bozuk başlıyor?
Bunun nedeni çıktı formatın ile girdi formatının uyumsuzluğundan kaynaklanıyor. Aşağıdaki kod ile yayın yapmayı dener misiniz? Aşağıdaki kodda formatı I420 yaptım. x264enc ile uyumlu ve muhtemelen istediğiniz görüntüyü alacaksınız. tune="zerolatency" speed-preset="ultrafast" bu iki komutu da ben ne olursa olsun ekliyorum. Video aktarımını gözle görülür şekilde hızlandırıyor. Gerçi siz canlı yayın yapmyacaksınız galiba ama olsun zararı olmaz.

appsrc caps="video/x-raw, format=RGBA, width=640, height=360, framerate=30/1" ! videoconvert ! video/x-raw, format=I420
! x264enc tune="zerolatency" speed-preset="ultrafast" ! matroskamux ! filesink
Ben de direkt QT den video almakta zorlanıyordum. Önce OpenCV den alıp sonra QT ye atmıştım. OpenCV için de BGR formatı kullanılıyor. Bilginiz olsun. Belki denemek istersiniz.
appsrc caps="video/x-raw, format=RGBA, width=640, height=360, framerate=30/1" ! videoconvert ! video/x-raw, format=BGR
! x264enc tune="zerolatency" speed-preset="ultrafast" ! matroskamux ! filesink
Zaten "Tüm görüntüleri QImage::Format_RGBA8888’e dönüştürüp appsrc'e gönderdim." demişsiniz. Bundan dolayı birde Format_RGB8888 'yi deneyebilir misiniz? Sizin yaptığınız yanlış değil hatta doğru ancak çalışmadıysa birde benim yazdığımı denemenizde fayda var.



Neden sadece 3–4 saniyelik kayıt alıyor, oysa buffer’da daha fazla kare var?
Bunun sebebi zaman damgası vermemiş olmanız. Gstreamde is-live=true do-timestamp=true şeklinde komut vardır. Bunlar zamanın düzgün işlenmesini sağlar. Yani kod şu tarz bir şey olacak. (Virgül hatam olabilir siz yine kontrol edersiniz.)

appsrc caps="video/x-raw is-live=true do-timestamp=true format=RGBA, width=640, height=360, framerate=30/1" ! videoconvert ! video/x-raw, format=I420
! x264enc tune="zerolatency" speed-preset="ultrafast" ! matroskamux ! filesink
Çıktıyı QT üzerinden yapıyorsunu aşağıdaki komut ile EOS sinyali gönderebilirsiniz. Böylece videonun bittiği anlaşılır. Direkt gstreamden yapıyorsanız bu eos sinyal olayını araştırmak lazım.

gst_app_src_end_of_stream(GST_APP_SRC(appsrc));
hocam merhaba yeni bir sorunum var mesajlarınız dolu olduğu için size ulaşamadım o yüzden buradan yazıyorum müsaitliğiniz varsa yeni açtığım konuya da bakabilirseniz çok müteşekkir olurum şimdiden teşekküler. Konu linkini aşağıya bırakıyorum.
https://www.r10.net/sorum-var/454822...runum-var.html