Video.mp4 dosyasından okuduğum char * arabellek var. Bu tampon boyutu 4096. BenGstreamer ile ham char * tamponu nasıl oynanır?
GstBuffer* Buffer = gst_buffer_new_wrapped(data, size);
dataBuffer = gst_buffer_copy(tmpBuf);
Sonra
GstElement* source = gst_bin_get_by_name (GST_BIN (consumer), "source");
gst_app_src_push_buffer (GST_APP_SRC (source), dataBuffer);
gst_object_unref (source);
Boru Hattı tüketici sonraki şekilde yaratılmıştır appsrc bu tampon itin Char * tampon gelen GstBuffer oluşturmaya çalıştı vardır :
gchar* videoConsumerString = g_strdup_printf ("appsrc max-buffers=5 drop=false name=source ! decodebin ! xvimagesink");
consumer = gst_parse_launch (videoConsumerString, NULL);
gst_element_set_state (consumer, GST_STATE_NULL);
g_free (videoConsumerString);
Boru hattı oluşturulduktan sonra durumunu GST_STATE_NULL. Oynamaya başladığımda, durumunu GST_STATE_PLAYING olarak ayarlıyorum.
Ama out hata var: Ben Char * tampon boyutunu değiştirmeye çalıştı
ERROR from element mpegvparse0: No valid frames found before end of stream
, boru hattında farklı unsurları kullanmak (örn ffmpegcolorspace, videconvert, diğer bazı) ama bu sorunu çözmedi . GST_DEBUG = 3 ile çalıştırırsanız
i uyarıları
0:00:00.064480642 4059 0x12c66d0 WARN codecparsers_mpegvideo gstmpegvideoparser.c:887:gst_mpeg_video_packet_parse_picture_header: Unsupported picture type : 0
Ben 1,0 gstreamer kullanmak çok şey var. Böyle bir problemle karşılaşan kimse var mı?
P.S. Gstreamer ile dosyadan veri okuma imkanım yok. Sadece dosyadan arabellekleri okuyabilirim ve sonra çalmaya çalışırım. Belki belirli bir sabit boyutlu okuyucuyu yerleştirmem gerekiyor?
[this] (https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/tests/examples/app/appsrc_ex.c) örneğini kullandınız mı? bu eos nasıl yaratıldı (dere sonunda demek istedim - bunu kim yaptı, bunu bir şekilde yapıyorsun)? Tahminim, EOS'tan sonra arabelleğe basmanızdır. Bununla ilgili herhangi bir uyarı görüyor musunuz ("GST_DEBUG = 3./Your_app' ile çalıştırın") – nayana
Neden '' 'gst_element_set_state (tüketici, GST_STATE_NULL);' ''? Niçin '' 'GST_STATE_PLAYING' '' ayarlıyorsunuz? Muhtemelen daha eksiksiz bir kod snippet'ine ihtiyacımız var. Ayrıca, ffmpegcolorspace'ın da görülmesi, yıllardır güncellenmeyen gstreamer-0.10'u kullandığınızı gösteriyor. Lütfen özellikle yeni kod için 1.X'e geçmeyi düşünün. – ensonic
@otopolsky Hayır, https://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-data-spoof.html örnek kullanılır, ancak hemen hemen aynıdır. EOS'u, tüm veriler zaten zorlandığında arabelleğe itiyorum. Sorunun gövdesini güncelledim. 887: gst_mpeg_video_packet_parse_picture_header: Desteklenmeyen resim türü: Ben diğer nesnelerin başlatılıyor bittiğinde zaman 0 –