بعض الشرح عن GStreamer

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته



بعض الشرح عن GStreamer .







إذا كنت تفكر بتطوير برنامج يتعلق بأي من هذه الأمور مشغل فيدوهات(mp4,ogg...إلخ) ومشغل أصوات (mp3,wave ...إلخ) أو برنامج تسجيل الشاشة أو برنامج يتعامل مع الكاميرا او بث الوسائط من خلال شبكة  قد يهمك ان تتعرف على  GStreamer ,بشكل بسيط هو cross-platform multimedia framework إطار عمل يعمل على عدة أنظمة منها  Android, iOS, Mac OS X and Windows  .

هناك أكثر من إصدار منه مثال عن الإصدار الأول  لتسجيل الشاشة على ملف طبعا يحتج أن تكون مثبت plugins  إضافة GStreamer على حسب ما تستخدمه ملاحظة هذا الامر لن يعمل على wayland.

gst-launch-1.0 -e  ximagesrc  ! videoconvert  ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 ! x264enc psy-tune=\"none\" speed-preset=\"superfast\" subme=1 qp-min=28 qp-max=40 threads=2 ! matroskamux name=mux ! filesink location=arfedoratest.webm
الان بعض الشرح للأمر في الأعلى أولا gst-launch-1.0 هو برنامج ينفذ ما مطلوب منه .

أما الباقي يسمى pipeline ترجمته للعربية  خط انابيب وعمله ياخذ مدخلات ويخرج مخرجات أي مثلا يأخذ بيانات من الكاميرا ويمررها من أنبوب لأنبوب ثم يتم معالجة هذه المدخلات  لتسهيل الامر أكثر هو شيء مثل سطر اﻷوامر مثلا هذا الأمر في الأسفل يستعرض الملفات ثم يبعث بالنتيجة من خلال الأنبوب للأمر الأخر  ليتم تعامل معها ثم يتعامل معها الأمر الاخر والذي هنا معنا الان امر grep الذي سيقوم فلترة النتيجة لكل ملف أو مجلد يحتوي حرفي py   .
ls |grep -i py

إذا كنت تريد إنشاء برنامج يفعل الشيء نفسه ستتخلى عن أمر gst-launch-1.0  وتستخدم بعض المكتبات للتعامل مع هذا ال pipeline مثلا في Gtk موجود تحت إسم Gst مثال لإستدعائه من بايثون from gi.repository import Gst وعلى ما أظن هو متوفر أيضا في Qt وغيرها وليس الأمر خاص ببايثون أي لغة برمجة مثلا متوفر لها Gtk ممكن إستخدام Gst .

في الحقيقة إجاد ال pipeline الصحيح هو كل المسئلة وباقي تفاصيل وإجاد ال pipeline الصحيح يحتاج منك معرفة كبيرة وحتى ما هذا تحتاج القيام بتجارب كثيرة ومراجعة تجارب الأخرين والإقتباس منهم لأن الأمر أشبه بتركيب دواء :D .

يمكنك أن تجد على الإنترنت pipline معقدة جدا وجاهزة فقط إبحث في جوجل أو youtube أذكر مرة شاهدة فيديو شخص نجح دمج تصوير الشاشة وكامرتين و مايكروفونين ودمجهم مع بعض يعني شيء مثل ما يفعله برنامج OBS .

أخيرا هذا برنامج أعمل عليه لتصوير الشاشة والصوت من المايكروفون وممكن أيضا الصوت من داخل  لينكس ويدعم تعدد الشاشات ,البرنامج من المفروض أنه  يعمل على كل الوجهات والتوزيعات بشكل جيد طالما توفرت ال plugins الضرورية لاكنه يعاني من بعض المشاكل مثل إرتفاع إستهلاك الذاكرة أحيانا والصوت لا يتم تسجيله على wayland وبعض المشاكل البسيطة يعني لا تأخذو هذا البرنامج الأن على أنه برنامج نهائي , لمن أراد أن يطلع على الامر هذا رابطه على github .

https://github.com/yucefsourani/gvrecord

أخيرا هناك برنامج اخر مساعد إسمه gst-inspect-1.0 يساعدك على جلب معلومات عن العناصر المركبة داخل ال pipeline مثل عنصر filesink ويعرض لك أيضا كل العناصر المتوفرة .

الأن pipeline ليأخذ الصوت من المايكروفون ويخرجه من سماعات الجهاز في الحقيقة على الرغم من أني لا أفهم شيء بموضوع الإختراق وهذه الأمور لاكن تعرفي على Gstreamer أيقظ لدي حس الأمن أكثر وعدم إستخدام مستودعات وتوزيعات عشوائية كيفما كان .
gst-launch -e pulsesrc  ! pulsesink

شارك الموضوع

مواضيع ذات صلة

التسميات

2016 (1) 23 (1) 24 (3) 25 (1) 26 (1) 27 (1) 28 (1) 29 (1) 30 (1) 31 (1) إتصال (1) إختراق (2) أدة (1) أدوات (1) إرسال (1) أرش (1) إسترجاع (1) إستعلام (1) أشياء (7) أشياء تفعلها (8) إصدارات (1) إصلاح (6) إصلاحrealtek (1) إضافات (1) إضافة (1) أعجوبة (1) أعجوية (1) إعداد (1) إقاف (2) أقسام (1) ألعاب (2) الفرق (1) الفلاشة (1) القسم هوم (1) الكتابة بالعربية (1) إلى جانب (1) أندرويد (1) إنشاء (1) إنشاء مستودع (1) أيات (1) أيزو (1) أيقومات (1) أيقونات (1) ايقونات (2) باتش (1) بارامتر (1) بايثون (16) برامج (56) برامج إسلامية (2) برنامج (19) برودباند (1) بعد (7) بعد التثبيت (8) بلوتوث (1) بناء (1) بناء توزيعة (1) بيئة عمل (1) تثبيت (29) تجهيز (2) تجهيو من دون (2) تحزيم (2) تحقق (1) تحويل (1) تخصيص (5) ترجمة (2) ترقية (1) تسجيل الشاشة (1) تشغيل (3) تعريف (13) تعطيل (2) تعلم (6) تفعلها (7) تفعيل (2) تقطع الأحرف (1) تقعيل (1) تنزيل (2) تورنت (1) توزيعة (1) توسعة (1) ثيم (5) ثيمات (1) جافا (1) جماليات (7) جنوم (1) حجم (1) حرق (2) حزمة (1) حل (2) دالة (1) دورة (1) روتر (1) ريدهات (2) سكربت (2) شرح (11) صورة متحركة (1) فايرفوكس (1) فتح منفذ (1) فصل (1) فلاشة (3) فيدورا (29) فيدورا بالعربي (1) قاموس (1) كالي (2) كتاب (2) كتب (2) كرت (1) كروت الشاشة (1) كلمة المرور (2) كورس (1) كورورا (1) لعبة (1) لينكس (2) لينكسو (1) ماهو (6) متغير البيئة (1) مجانا (1) محاكات (2) محاكي (1) محمل الإقلاع إصلاح (1) محمول (1) مستودعات (1) مشكلة (2) ملف نصي (1) من إصدار (1) نظام ملفات (1) نمط (2) نواة (1) هجين (4) واجهات (1) وايرلس (1) وهمي (2) ويندوز (2) access token (1) active (2) add (1) after (7) alias (1) andoid studio (1) android (2) android studio (1) Apache (2) appstream (1) arboot (1) arboot fix (1) arch (3) archiso (1) arfedoraccframework (3) arfedoracontrolcenter (3) arfedy (1) atari (1) atom (1) ayat (1) bicon (1) blivet (1) blivet-gui (1) bls (1) bluetooth (1) book (2) books (2) bootloader fix (1) boxes (3) broadband (1) broadcom (1) broadwayd (1) bugzilla (1) build (2) builddep (1) bumblebee (1) bumbleebe (2) burn (2) byzanz (1) c# (1) calamares (1) camera (1) cannot open display (1) cannot open display: :0 (1) ccna (1) cd (2) centos (1) change (2) chsh (1) cisco (1) clion (1) clone (1) code.org (1) command (2) command line (2) commands (2) comps (1) connect (1) contra (1) convert (1) copr (1) could not connect to the debugger (1) cpu (1) cpufreq (1) createrepo (1) csharp (1) css (1) curlew (1) custom (2) dbus (3) dconf (1) dd (1) Decryption (1) defragment (2) desktop (1) desktop entry (1) dictionary (1) Digital signature (1) disks (1) dnf (14) do (7) docker (1) dolphine (1) download (2) downloads manager (1) dply (1) DRI PRIME (1) driver (9) dukto (1) e2fsck (1) efi (4) el forkane (1) elforkane (1) elif (1) emergency (3) emergency mode (3) emulator (1) enable (2) Encryption (1) entries (1) error mounting /dev/sd (1) ext4 (1) extend (1) extensions (2) fakenes (1) fast startup (2) fceux (1) fedora (45) fedora 25 alpha (1) fedora cloude (1) fedora28 (1) fedoraوفيدورا (1) fedy (1) fgmac (2) fgmac-24 (1) file (1) find (1) firefox (2) fix (10) flash mem (1) flash memory (2) flashplayer (1) flatpak (4) forward (1) fpaste (1) free (1) freebsd (1) freevpn (1) function (1) game (3) games (2) gedit (1) genymotion (1) gettext (1) gif (1) gimp (1) gio (1) github (5) github.io (1) glibc-common (1) gmaclinux (2) gnome (16) gnome boxes (1) gnome disk (1) gnome shell (13) gnome terminal (1) gnome-disks (1) gnu (1) godot (1) goldendict (1) google web designer (1) gpg (2) gradio (1) group (2) grub (7) grub2 (1) grubenv (1) gstreamer (1) gtk (8) gtk+ (1) gvrecord (1) hack (2) hash (4) hdmi (3) hibernate (1) home (2) hosspot (1) html (1) http (1) hybrid (2) icon (2) icons (3) ide (1) if (1) install (32) installf (9) installing (7) intellij idea (1) internet downlaod manager (1) iso (2) java (3) jdk (2) jetbrains (1) jetbrains toolbox (1) kali (2) kde (3) kernel (1) kernel parameters (1) key (1) kickstarts (3) korora (1) krita (1) kvm (2) kvm switches (1) lamp (1) laps (1) learn (1) legacy (1) legacy bios (3) libreoffice (2) libvirt (1) life is trange (1) linux (8) lutris (1) lv (1) lvm (2) mac (4) macros (1) mageia (1) make distro (1) mariadb (1) MariaDB and PHP Lamp Server (1) markdown (2) mate terminal (1) mbr (1) md5sum (1) mirro (1) mkconfig (1) mo (1) mono (2) monodevelop (2) mount (1) mp4 (1) multi screen (1) mumble (1) murmur (1) natron (1) nautilus (2) nes (1) netbeans (1) netcut (1) nintendo (1) ntfs (2) nvidia (8) objdesktop (1) ojuba (2) oop (1) opensuse (1) openvpn (1) opera (1) optirun (2) oracle (1) os.path (1) package (2) page (1) pages (1) pantheon (1) parameter (1) parameters (1) password (2) patch (1) path (2) pdf (1) peek (1) photoshop (1) php (1) phpstorm (1) plasma (2) plugin (3) plugins (1) plymouth (1) po (1) polkit (1) port (1) portable (1) portmatp (1) PostinstallerF (1) pot (1) powerline (2) powerline-go (1) preset (1) preview (1) primary display (1) primeos (1) primus (1) primusrun (1) private key (1) programs (3) protonvpn (1) pubg (1) public key (1) put (1) pv (1) pycharm (2) pygobject (4) pygtk (5) python (56) pythonk (1) qdbus (1) qemu (3) qemu-kvm (1) query (1) radio (1) raspberry pi (4) raspbian (2) reclaim space (2) record (1) redhat (3) remix (1) remix os (1) repo (4) repofrompath (1) repository (1) reset (1) resize2fs (1) rhel (1) router (1) rpm (7) rpmbuild (1) rtl8188ee (1) rtl8192c (1) rtl8192ce (1) rtl8192cu (1) rtl8192de (1) rtl8192ee (1) rtl8192se (1) rtl8723ae (1) rtl8723be (1) rtl8723com (1) rtl8821ae (1) rubymine (1) salix (1) scratch (2) scratch2.scratch 2 (1) screencast (1) script (2) seconday display (1) self (1) send (1) server (1) settings (2) sha1256sym (1) sha256sum (1) share desktop (1) shell (2) shortcut (1) shutter (1) skel (1) skel ماهو (1) skype (1) skype.برامج (1) slackware (1) software (1) soundcloud (1) source code (1) spec (2) spin (1) sqlmap (1) ssh (3) sshd (2) st-trans (1) steam (2) store (1) su (1) sudo (2) sudoers (1) swap (2) switch (2) Switchable Graphics (1) synergy (1) systemd (1) systemd preset (1) teamviewer (1) terminal (2) theme (5) things (7) thomson (1) thread (2) threading (2) thumbnails (1) to (8) tor (2) tor browser (1) torrent (1) transfer closed with 736700 bytes remaining to read (1) translation (1) turn off (2) tuxcut (1) txt (1) ubuntu (1) uefi (5) unable to mount location (1) unity (1) unity3d (1) upgrade (1) usb (1) useradd (2) utf-8 (1) vega (1) verify (1) vg (1) vgaوتبديل (1) vi (1) video (1) vim (1) vino (1) virsh (1) virt-install (1) virt-manger (1) virtual (1) virtual box (1) virtualbox (3) vmware (3) vnc server (1) vokoscreen (1) vpn (1) web server (1) webstorm (1) wifi (1) windows (4) windows-1256 (1) wine (1) woeusb (1) X Error: BadAccess (1) X Error: BadDrawable (1) xdg-mime (1) xdman (1) xfce (1) xfconf-query (1) yum (2) zeal (1) zealdocs (1)