рдирдорд╕реНрддреЗ рдлрд┐рд░ рд╕реЗ, рд╣рдмрд▓реНрдпреВрдЬрд╝рд░ рдЬреЛ GStreamer рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ! рдЖрдЬ рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдореАрдбрд┐рдпрд╛ рдбреЗрдЯрд╛ рдХреЗ рд╕рд┐рдВрдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, рд░реЗрдбрд┐рдпреЛ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрджрд┐рдо рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд▓рд┐рдЦреЗрдВ рдФрд░ рдПрдХ рдлрд╛рдЗрд▓ рдХреЛ рд╕реНрдЯреНрд░реАрдо рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдВ, рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╕реАрдЦреЗрдВред
рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ (рд╕рд┐рдВрдХ) рдПрдХ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдХрд╣реАрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрддреНрд╡ рд╣реИ, рдЪрд╛рд╣реЗ рд╡рд╣ рд╕рд╛рдЙрдВрдб рдХрд╛рд░реНрдб, рдлрд╝рд╛рдЗрд▓, рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реЛред рдЗрд╕рдХреЗ рдореВрд▓ рдореЗрдВ, рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд┐рдкрд░реАрдд рд╣реИ, рдФрд░, рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкреИрдб - рд╕рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИред
рдЖрдЗрдП рдЖрдЙрдЯрдкреБрдЯ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ
1. рдирдХрд▓реА
рдЗрд╕рдХреЗ рдЕрд░реНрде рдореЗрдВ рдпрд╣ рдЙрдкрдХрд░рдг fakesrc рдХреЗ рд╕рдорд╛рди рд╣реИ - рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред fakesink рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд┐рдЧреНрдирд▓ рдХреЛ "рд╢реВрдиреНрдп рдореЗрдВ" рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореИрдВ рд╕реНрд╡рдпрдВ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣рд╛рдБ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕ рдЙрдкрдХрд░рдг рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдирд╣реАрдВ рдорд┐рд▓реАред
рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:
gst-launch-1.0 fakesrc ! fakesink
2. рдЭреБрд░реНрд░реА
рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдореЗрдВ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП fdsink рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рдпрд╣ fdsrc рдХреА рддрд░рд╣, рдХреЗрд╡рд▓ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ - fd рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ STDOUT рдореЗрдВ рд╕реНрдЯреНрд░реАрдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЗрд╕ рддрддреНрд╡ рд╕реЗ рдмрд╣реБрдд рдХрдо рд▓рд╛рдн рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдЕрд░реНрде рдирд╣реАрдВ рд╣реИред
рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:
gst-launch-1.0 filesrc location=/foo/bar.mp3 ! fdsink | gst-launch-1.0 fdsrc ! decodebin ! autoaudiosink
3. рдЕрд▓рд╕реА, рджрд╛рд▓рдЪреАрдиреА, oss4sink / osssink, jackaudiosink, autoaudiosink
рдЗрди рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрд╡рд╢реНрдпрдХ рдСрдбрд┐рдпреЛ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдзреНрд╡рдирд┐ рдХрд╛рд░реНрдб рдореЗрдВ рдзрд╛рд░рд╛ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╕реЗ, рдХреЗрд╡рд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдиреЛрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЗрд╕рдореЗрдВ рд╕рд╛рдЙрдВрдб рдХрд╛рд░реНрдб рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдзрд╛рд░рд╛ рдмрджрд▓реЗ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдЧреАред рдореЙрдбреНрдпреВрд▓ рдХреА рдЙрдкрд░реЛрдХреНрдд рд╕реВрдЪреА рд╕реЗ, рдХреЗрд╡рд▓ рдСрдЯреЛрдбрд╛рдпрд╕рд┐рдВрдХ рдПрдХ рддрд░рдл рдЦрдбрд╝рд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ - рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд╣рд╛рдВ рдФрд░ рдХрд┐рд╕ рдзреНрд╡рдирд┐ рдЙрдкрдзрд╛рд░рд╛ рдХреЛ рд╕реНрдЯреНрд░реАрдо рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рд╣реИред
рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг:
gst-launch-1.0 filesrc location=/foo/bar.mp3 ! decodebin ! alsasink device="hw:0" gst-launch-1.0 filesrc location=/foo/bar.mp3 ! decodebin ! pulsesink gst-launch-1.0 filesrc location=/foo/bar.mp3 ! decodebin ! autoaudiosink
4. рдлрд╛рдЗрд▓
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рдЪреБрдХреЗ рд╣реИрдВ, рдЗрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдлрд╛рдЗрд▓ рдореЗрдВ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдПрдХ рд░реЗрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдВ, рдПрдХ рд╡реЗрдм-рдХреИрдорд░рд╛ рд╕реЗ рдПрдХ рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдВ, рд╕рд╛рде рд╣реА рдПрдХ рд╕рд╛рдЙрдВрдб рдХрд╛рд░реНрдб рд╕реЗ рдПрдХ рдСрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рднреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдбрд┐рд╡рд╛рдЗрд╕ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдпрджрд┐ рдЖрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ GStreamer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рдЗрд╕ рддрддреНрд╡ рдХреЗ рдЧреБрдгреЛрдВ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ filesrc рддрддреНрд╡ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рдЬреЛ рд╣рдо рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдорд┐рд▓реЗ рдереЗред рдПрдХ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдлрд╛рдЗрд▓рд╕рд┐рдВрдХ рдореЗрдВ рдПрдХ рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИред рдПрдкреЗрдВрдб рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рд╕реНрдЯреНрд░реАрдо рдХреЛ рд╢реБрд░реВ рд╕реЗ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:
gst-launch-1.0 v4l2src num-buffers=1 ! jpegenc ! filesink location=/tmp/capture1.jpeg
рдпрд╣ рдЙрджрд╛рд╣рд░рдг v4l2 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ рдЙрдкрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдПрдХ рддрд╕реНрд╡реАрд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг, рдФрд░ /tmp/capture1.jpeg рдореЗрдВ рддрд╕реНрд╡реАрд░ рдХреА рдмрд╛рдж рдХреА рдмрдЪрдд рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред5. рдмрд╣реБрд╕реНрддрд░реАрдп
рдорд▓реНрдЯреАрдлрд╝рд╛рдЗрд▓рд┐рдВрдХ рддрддреНрд╡ рдорд▓реНрдЯреАрдлрд╝рд╛рдЗрд▓реНрд╕ рдЖрд░реНрдХ рддрддреНрд╡ рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд┐рдкрд░реАрдд рд╣реИ, рдЬреЛ рд╣рдо рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдорд┐рд▓реЗ рдереЗ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдЯреНрд░реАрдо рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрддреНрд╡ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ multifilesrc рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрди рдкрд░ рдирд┐рд╡рд╛рд╕реА рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред
рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:
gst-launch-1.0 v4l2src num-buffers=10 ! jpegenc ! multifilesink location=/tmp/capture%d.jpeg
рдпрд╣ рдЙрджрд╛рд╣рд░рдг 10 рддрд╕реНрд╡реАрд░реЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реЗрдЬрддрд╛ рд╣реИред6. рдЬрд┐рдУрд╕рд┐рдВрдХ
рдФрд░ рдпрд╣ рддрддреНрд╡ giosrc рддрддреНрд╡ рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд┐рдкрд░реАрдд рд╣реИ - рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ GIO рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╛рдЗрд▓ рдореЗрдВ рд╕реНрдЯреНрд░реАрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд┐рдУрд╕реНрдХреИрди рдХреА рддрд░рд╣, рдЬрд┐рдУрд╕рд┐рдВрдХ рдореЗрдВ рдлрд╛рдЗрд▓ рдХреЛ рдкрде рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рди рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рд╕реНрдЯреНрд░реАрдо рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:
gst-launch-1.0 location ! giosink location=file:///foo/bar.raw
7. рдПрдХреНрд╕рдореЗрдЬрд┐рдВрдХ рдФрд░ рдПрдХреНрд╕рд╡рд┐рдореЗрдЬрд┐рдВрдХ
рдЗрди рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХреНрд╕-рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реАрдбрд┐рдпреЛ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реАрдбрд┐рдпреЛ рдХреЛ "рдХрдВрд╕реЛрд▓ рдореЗрдВ" рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддрддреНрд╡реЛрдВ рдХреЗ рдмреАрдЪ рдмрд╣реБрдд рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рджреЛ рдмрд┐рдВрджреБ рд╣реИрдВ - ximagesink рдХреЗрд╡рд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП X рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ xvimagesink libxv рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред Xvimagesink рдореЗрдВ рднреА рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдЙрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдкреНрд░рджрд░реНрд╢рди
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕-рдбрд┐рд╕реНрдкреНрд▓реЗ рдирд╛рдо: 0 ,: 1 ,: 2 ...
рдкрд┐рдХреНрд╕реЗрд▓ рдкрд╣рд▓реВ-рдЕрдиреБрдкрд╛рдд
рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╣рд▓реВ рдЕрдиреБрдкрд╛рдд рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 2/1ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 1/1 рд╣реИред
рдмрд▓-рдкрд╣рд▓реВ-рдЕрдиреБрдкрд╛рдд
рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓-рдкрд╣рд▓реВ-рдЕрдиреБрдкрд╛рдд рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдпрджрд┐ рддрддреНрд╡реЛрдВ рдХреЗ рдмреАрдЪ "рдмрд╛рддрдЪреАрдд" рдореВрд▓ рдкрд┐рдХреНрд╕реЗрд▓-рдПрдкреЗрдХреНрдЯ-рд░рддрд┐рдУ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ), рдФрд░ рдпрд╣ рдЧреБрдг рдЗрд╕ "рд╕рдорд╕реНрдпрд╛" рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреБрдг рдХреЗрд╡рд▓ xvimagesink рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВредрдЪрдордХ, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд░рдВрдЧ, рд╕рдВрддреГрдкреНрддрд┐
рдЗрди рдЧреБрдгреЛрдВ рдХреЗ рдирд╛рдо рд░реВрд╕реА ("рдЪрдордХ-рд╡рд┐рдкрд░реАрдд-рд╣реНрдпреВ-рд╕рдВрддреГрдкреНрддрд┐") рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдХреЛрдИ рднреА рдЙрдирдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реИред рдорд╛рди -1000 рд╕реЗ 1000 рддрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдпреБрдХреНрддрд┐
рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХреА рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рд╡реАрдбрд┐рдпреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдбрдмрд▓ рдмрдлрд░
рдпрд╣ рд╕рдВрдкрддреНрддрд┐
рдбрдмрд▓ рдмрдлрд░рд┐рдВрдЧ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдФрд░ рдЕрдХреНрд╖рдо рдХрд░рддреА рд╣реИред
colorkey, autopaint-colorkey
рдЗрди рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдУрд╡рд░рд▓реЗ рдХреЗ рд░рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рд╡реАрдбрд┐рдпреЛ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред Colorkey рдореЗрдВ рдПрдХ рдХрд▓рд░ рдХреЛрдб рд╡рд╛рд▓рд╛ рдПрдХ gint рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ autopaint-colorkey рдУрд╡рд░рд▓реЗ рдХреЛ рдЙрд╕ рд░рдВрдЧ рд╕реЗ рднрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред
рдиреЛрдЯ:рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд░рдВрдЧ рдХреНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд░рдВрдЧ рдЖрд░рдЬреАрдмреА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕реВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ ((рдЖрд░рдЖрд░ рдФрд░ 0xff) << 16) | ((GG & 0xff) << 8) | (BB & 0xff)ред
рдЖрдХрд░реНрд╖рд┐рдд-рд╕реАрдорд╛рдУрдВ
рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдмрд▓-рдкрд╣рд▓реВ-рдЕрдиреБрдкрд╛рдд рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдХрд╛рд▓реЗ рд╕реНрдЯреНрд░реЛрдХ рдХреА рдбреНрд░рд╛рдЗрдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рддреА рд╣реИ рдЬрд╣рд╛рдВ "рд╢реВрдиреНрдп" рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг:
gst-launch-1.0 videotestsrc ! ximagesink gst-launch-1.0 videotestsrc ! xvimagesink
8. рдЖрд╕рд┐рдВрдХ рдФрд░ рдХреИрдХрд╕рд┐рдВрдХ
рдпреЗ рддрддреНрд╡ рд╢рд╛рдпрдж рдЕрдм рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╛ рддреЛ "рдУрд▓реНрдбрдлрд╝реИрдЧ" рдпрд╛ рдЙрди рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ "рд▓рд┐рдирдХреНрд╕ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ" рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭрд╕реЗ рдЧрд▓рддреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдпреЗ рджреЛрдиреЛрдВ рддрддреНрд╡ рдЖрдкрдХреЛ рд▓рд┐рдмрд╛ рдФрд░ рд▓рд┐рдмрд╛рдХрд╛рдХрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рдПрдПрд╕рд╕реАрдЖрдИрдЖрдИ рдХрд▓рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╡реАрдбрд┐рдпреЛред рдЙрдирдХреЗ рдмреАрдЪ рдХреЗрд╡рд▓ рдПрдХ рдЕрдВрддрд░ рд╣реИ: рд▓рд┐рдмрд╛ рдХрд╛рд▓реЗ рдФрд░ рд╕рдлреЗрдж рд╡рд░реНрдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд▓рд┐рдмрд╛рдХрд╛ рд░рдВрдЧ рд╡рд░реНрдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╣рдо рдЗрди рддрддреНрд╡реЛрдВ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирд╕реЗ (IMHO) рдХреЛрдИ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд▓рд╛рдн рдирд╣реАрдВ рд╣реИред
рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг:
gst-launch-1.0 videotestsrc ! aasink gst-launch-1.0 videotestsrc ! aacasink
9. gdkpixbufsink
рдпрд╣ рддрддреНрд╡ рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдХреЛ
GdkPixbuf рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдХреЗрд╡рд▓-рдЕрдВрддрд┐рдо-рдкрд┐рдХреНрд╕рдмреБрдл рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИред рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ - рдореИрдВ рдХрд▓реНрдкрдирд╛ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
рдЙрджрд╛рд╣рд░рдг
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдЦрд┐рд▓рд╛рдбрд╝реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рд╕реЗ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдПрдХ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ - рдПрдХ рдлрд╛рдЗрд▓ рдкрд░ рд╕реНрдЯреНрд░реАрдо рд▓рд┐рдЦрдирд╛ред
рдиреЛрдЯ:рдпрд╣ рдЙрджрд╛рд╣рд░рдг (рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХреА рддрд░рд╣) рдЙрдмрдВрдЯреВ 13.10 рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ,
рд╕реЗрдЧрдлреЙрд▓реНрдЯ рд╕реЗ рдЧрд┐рд░рддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ
рдПрд▓рдкреА: 1198375 )ред
рдЧреМрд░ рдХреАрдЬрд┐рдП рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рд╕реБрд╡рд┐рдзрд╛ рдФрд░ рддрд╛рд░реНрдХрд┐рдХ рдкреГрдердХреНрдХрд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдХрдВрдЯреЗрдирд░ рд░рд┐рдХреЙрд░реНрдбрд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рддреАрди рддрддреНрд╡ рд░рдЦрддреЗ рд╣реИрдВ - рд╡реЛрд░рдмрд┐рд╕реЗрдВрдХ, рдСрдЧреНрдореБрдХреНрд╕ рдФрд░ рдлрд╛рдЗрд▓рд╕рд┐рдВрдХред Vorbisenc рдФрд░ oggmux рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ рдХреЛ RAW рд╕реНрдЯреНрд░реАрдо рдХреЛ
vorbis рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ рдПрдирдХреЛрдб рдХрд░рдиреЗ рдФрд░ рдХреНрд░рдорд╢рдГ рдПрдХ
ogg рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдо рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдХрдВрдЯреЗрдирд░реЛрдВ (рдмрд┐рди) рдкрд░ рдирд╣реАрдВ рд░рд╣рддреЗ рд╣реИрдВ, рдореИрдВ рдХреЗрд╡рд▓ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдХрдВрдЯреЗрдирд░ рдкреВрд░реНрдг рддрддреНрд╡ рд╣реИрдВ рдЬреЛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдХреБрдЫ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддреЗ рд╣реИрдВред
рд░рд┐рдХреЙрд░реНрдбрд░рдмрд┐рди рдореЗрдВ, рд╕рднреА рддреАрди рддрддреНрд╡ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ:
vorbisenc тЖТ oggmux тЖТ filesink
рдЕрдЧрд▓рд╛, рд╣рдо рдЯреА рддрддреНрд╡ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдмрд╣реБрд╕рдВрдХреЗрддрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рддрддреНрд╡, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ, рдЕрдХреНрд╕рд░ рдХреЗрд╡рд▓ рдПрдХ рдЗрдирдкреБрдЯ рдФрд░ рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЯреА рддрддреНрд╡ рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рддрдм рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдЬрдм рдЖрдкрдХреЛ рд╕рд┐рдЧреНрдирд▓ рдХреЛ "рд╡рд┐рднрд╛рдЬрд┐рдд" рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рджреЛ рдореЗрдВ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдмрд┐рдВрджреБ (рд╕рд╛рдЙрдВрдб рдХрд╛рд░реНрдб рдФрд░ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдлрд╝рд╛рдЗрд▓)ред
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЯреА рддрддреНрд╡ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ src_0 рдХреЛ рд╡реЙрд▓реНрдпреВрдо рдПрд▓рд┐рдореЗрдВрдЯ рдХреЗ рд╕рд┐рдВрдХ рдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд▓реЗрдЗрдВрдЧ рд╕реНрдЯреЗрдЯрд╕ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдкрдиреЗ рд░рд┐рдХреЙрд░реНрдбрд░ рдХреЛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЯреА рд░рд┐рдХреЙрд░реНрдбрд░ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ src_1 рдХреЛ рд╕рд┐рдВрдХ рд░рд┐рдХреЙрд░реНрдбрд░ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ, рд╕рдм рдХреБрдЫ create_pipeline рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдкреВрд░реА рдкрд╛рдЗрдкрд▓рд╛рдЗрди GStreamer рдореЗрдВ рдЕрд╡рд░реБрджреНрдз рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЬрдм PLAY рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдФрд░ рд╕рд┐рдВрдХ рддрддреНрд╡ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЖрдЬ рд╣рдордиреЗ рд╕реНрдЯреНрд░реАрдо рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рд╕рднреА рдЙрдкрд▓рдмреНрдз рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреАред рдмрд╛рдж рдХреЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╣рдо рддрдерд╛рдХрдерд┐рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдлрд┐рд▓реНрдЯрд░ рдРрд╕реЗ рддрддреНрд╡ рд╣реИрдВ рдЬреЛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдзрд╛рдЧреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд▓реНрдЯрд░ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдПрдирдХреЛрдбрд░ рдФрд░ рдбрд┐рдХреЛрдбрд░, рдбреЗ / рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕рд░реНрд╕, рд╡рд┐рднрд┐рдиреНрди рдСрдбрд┐рдпреЛ / рд╡реАрдбрд┐рдпреЛ рдлрд┐рд▓реНрдЯрд░ рдФрд░ рдЕрдиреНрдп рд╕реЗрд╡рд╛ рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд╕рд╛рд╣рд┐рддреНрдп
- GStreamer рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдореИрдиреБрдЕрд▓
- GStreamer Core рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╕рдВрджрд░реНрдн рдореИрдиреБрдЕрд▓
- GStreamer рдмреЗрд╕ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╕рдВрджрд░реНрдн рдореИрдиреБрдЕрд▓
- GStreamer рдЕрдЪреНрдЫрд╛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╕рдВрджрд░реНрдн рдореИрдиреБрдЕрд▓
рдкреБрдирд╢реНрдЪрдкреНрд░рд┐рдп рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ, рдорд┐рддреНрд░реЛрдВ, рдФрд░ рд╕рд╛рдзрд╛рд░рдг рд╣реИрдмреНрд░реЗрдЯреЗрд▓реА, рдореИрдВ рдЫрд╣ рдорд╣реАрдиреЗ рдмрд╛рдж рдкреЛрд╕реНрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рдПрдХ рд╕рдкреНрддрд╛рд╣ рдирд╣реАрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛ред рдореИрдВ рдЕрдЧрд▓реА рдкреЛрд╕реНрдЯ рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓рд┐рдП рд╕рдЯреАрдХ рддрд╛рд░реАрдЦреЛрдВ рдХреЛ рдЖрд╡рд╛рдЬ рдирд╣реАрдВ рджреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рд╡рд╛рджрд╛ рди рдирд┐рднрд╛рдиреЗ рдХрд╛ рдбрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
PPS: рдирдореВрдирд╛ рд╕реНрд░реЛрдд
GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рдкрд┐рдЫрд▓рд╛ рд▓реЗрдЦ