рдкреНрд░рддреНрдпрдХреНрд╖ рд╡реАрдбрд┐рдпреЛ рд╡рд┐рднрд╛рдЬрди рдФрд░ DirectShow рдХреЗ рд╕рд╛рде gluing

рд╣рдорд╛рд░рд╛ рдПрдХ рд╡рд┐рднрд╛рдЧ рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХреЗ рдореИрдиреБрдЕрд▓ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд▓рдЧрд╛ рд╣реБрдЖ рд╣реИред рдЙрд╕реА рд╕рдордп, рд╕рднреА рдХреНрд░рд┐рдпрд╛рдПрдВ (рдмрдЯрди рджрдмрд╛рдиреЗ, рдбрд┐рд╕реНрдХ рдбрд╛рд▓рдиреЗ, рдЖрджрд┐) рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рд▓рдЧрд╛рддрд╛рд░ рджрд░реНрдЬ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИрдВ: рдХреИрдорд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рддреНрд░реБрдЯрд┐ рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдмреВрдд рд╣реИ, рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдмрд╣реБрдореВрд▓реНрдп рдЬрд╛рдирдХрд╛рд░реА рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЧрдИ рдереА рдФрд░ рдХрд┐рддрдиреА рдЬрд▓реНрджреАред рд╕рд╣рдордд, рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рд╣реИ рдирд╛?

рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдпрд╣ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рдХрд┐рд╕реА рднреА рдЪрд░рдг рдореЗрдВ, рдпрд╛ рдХреЗрд╡рд▓ рд╕реНрдЯреИрдВрдбрдмрд╛рдп рдореЛрдб рдореЗрдВ, рдЬрдм рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рддреНрд░реБрдЯрд┐ рдЕрдирд╛рдпрд╛рд╕ рдФрд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рд╣реЛ рд╕рдХрддреА рд╣реИред рдореИрдВ рдЗрдЪреНрдЫреБрдХ рд▓реЛрдЧреЛрдВ рдХреЛ рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд╣рд╛рдВ рдореИрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд┐рднрд╛рдЬрди рдХреЗ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдЙрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреВрд░реЗ рджрд┐рди рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рд╡реАрдбрд┐рдпреЛ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫреЛрдЯреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рджреБрд░реНрд▓рдн рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╕рд╛рде рд╣реА рдЕрд╕рдВрднрд╡ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рджрд░реНрдЬрдиреЛрдВ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдкреНрд░рд╕рдиреНрди рдХрд░рддрд╛ рд╣реИред

рд╡реАрдбрд┐рдпреЛ рдХреНрдпреЛрдВ рддреЛрдбрд╝реЗрдВ?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ - рдХреНрдпреЛрдВ? рд╡реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдЖрда-рдШрдВрдЯреЗ рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдХреБрдЫ рд╡реАрдбрд┐рдпреЛ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рд╡реЗ рд╡рд╛рдВрдЫрд┐рдд рд╡реАрдбрд┐рдпреЛ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХрд╛рдЯрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЕрдВрдд рд╣реИред рджрд░рдЕрд╕рд▓, рдпрд╣ рдкрд╣рд▓реЗ рд╣реБрдЖ рдерд╛, рд▓реЗрдХрд┐рди рдХрдИ рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ: рд▓рдВрдмреА рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдирд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдХрд╛рдЯрдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп, рдЖрдкрдХреЛ рд╕рдордп рдФрд░ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЗ рд╕рд╛рде рд╡реАрдбрд┐рдпреЛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдЕрднреА рддрдХ рд░рдмрд░ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЛ рд░реЛрдХрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣рд╛рдВ, рдЕрд░реНрде рдХреЗ рдХрд╛рдиреВрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕рдмрд╕реЗ рд╣рд╛рдирд┐рдХрд╛рд░рдХ рдФрд░ рдЧреИрд░-рджреЛрд╣рд░рд╛рд╡ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣рдореЗрд╢рд╛ рд╣реЛрддреА рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдирд┐рд░реНрдгрдп - рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдЪрд░рдг рдореЗрдВ рдХрдЯреМрддреА рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП!

DirectShow рд╣рдореЗрдВ рдХреНрдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ?

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП, DirectShow рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рднреА рд╣реИ рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рд╡рд┐рдВрдбреЛрдЬ рдореАрдбрд┐рдпрд╛ рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рддреН WMV3 , рдЗрд╕рд▓рд┐рдП рдпрд╣ рдордХреНрдЦреА рдкрд░ рд╕рдВрдкреАрдбрд╝рди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдзреБрдирд┐рдХ рдХрдВрдкреНрдпреВрдЯрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ: рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдордп рдПрдХ рдлреНрд░реЗрдо рдХреЛ рдЦреЛрдП рдмрд┐рдирд╛ рдЖрдиреЗ рд╡рд╛рд▓реА рдСрдбрд┐рдпреЛ рдФрд░ рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕реНрдерд╛рдпреА рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, рджреЛ рдорд┐рдирдЯ рдФрд░, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдЧреЛрдВрдж рдХрд░реЗрдВред

рдЖрдЗрдП, рд╡рд┐рдВрдбреЛрдЬ рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдзреНрд╡рдирд┐ рдФрд░ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХреЗ рд╕рд╛рде рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрдо рдлрд┐рд▓реНрдЯрд░ рдЧреНрд░рд╛рдл рдмрдирд╛рдПрдВред рдЖрдкрдХреЛ рдРрд╕рд╛ рдХреБрдЫ рдорд┐рд▓рддрд╛ рд╣реИ:


рдпрд╣ рдЧреНрд░рд╛рдлрд╝ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдСрдбрд┐рдпреЛ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рджреЛ рдЗрдирдкреБрдЯ рдлрд┐рд▓реНрдЯрд░ рд╡рд┐рднрд┐рдиреНрди рдзрд╛рд░рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд┐рд▓реНрдЯрд░ рдХреЗ рдЗрдирдкреБрдЯ рдкрд┐рди рдХреЛ рдирдореВрдиреЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдорд╛рд░реНрдЯ рдЯреА рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╡реАрдбрд┐рдпреЛ рдбреЗрдЯрд╛ рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдХреЙрдкреА рд╡реАрдбрд┐рдпреЛ рд░реЗрдВрдбрд░рд░ рдореЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ WM ASF рд░рд╛рдЗрдЯрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдСрдбрд┐рдпреЛ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдлрд╛рдЗрд▓ рдкрд░ рд▓рд┐рдЦрддрд╛ рд╣реИред

рджреЛ рдлрд╝рд┐рд▓реНрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде "рд╣реЗрдб-рдСрди" рд╕рдорд╛рдзрд╛рди рдЬреЛ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдо рдХреЛ рдмрджрд▓рдХрд░ рдЧреНрд░рд╛рдл рдореЗрдВ рдкрд░рд╕реНрдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред


DirectShow рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ: рдЬрдм рддрдХ рдЗрд╕реЗ рд░реЛрдХрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рддрдХ рдЗрд╕рдХреЗ рд╕рднреА "рдЖрдЙрдЯрдкреБрдЯ" рдлрд╝рд┐рд▓реНрдЯрд░ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреБрд▓рд╛ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдВрддрд┐рдо рд░реВрдк рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмрд┐рдирд╛ рдЧреНрд░рд╛рдлрд╝ рдХреЛ рд░реЛрдХреЗрдВ, рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдо рдмрджрд▓рдирд╛ рдпрд╛ рдХрдиреЗрдХреНрдЯ / рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдирд╛рдореБрдордХрд┐рди рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рд▓реЗрдХрд┐рди рдЧреНрд░рд╛рдл рдХреЛ рд░реЛрдХрдирд╛ рдФрд░ рд╢реБрд░реВ рдХрд░рдирд╛ рдХрдИ рдлреНрд░реЗрдореЛрдВ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрдИ рд╕реЗрдХрдВрдб рдХреЗ рдиреБрдХрд╕рд╛рди рд╕реЗ рднрд░рд╛ рд╣реЛрддрд╛ рд╣реИ! рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдорд╛рдирдХ рд╕рд╛рдзрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рд╕реНрд╡рдпрдВ рд░реЗрдЦрд╛рдВрдХрди

рдПрдХ рд╕рдорд╛рдзрд╛рди рд░рд┐рдХреЙрд░реНрдб рдЧреНрд░рд╛рдл рдХреЛ рдХреИрдкреНрдЪрд░ рдЧреНрд░рд╛рдл рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдХреЛ рд░реЛрдХ рд╕рдХреЗрдВред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбрд╛рдпрд░реЗрдХреНрдЯрд╢реЛ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ - рдЧреЗрд░реЗрдВрдЯ рдбреЗрд╡рд┐рд╕ рд╕реЗ рдЬреАрдПрдордПрдлрдмреНрд░рд┐рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рд╕рдВрдкреВрд░реНрдг рдкреНрд░рдгрд╛рд▓реА рдХреА рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рдпреЛрдЬрдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:


GMFBridge рддреАрдиреЛрдВ рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдПрдХ рд╕рд╛рде рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдлреНрд▓рд╛рдИ рдкрд░ рдкрд╣рд▓реЗ рдФрд░ рджреВрд╕рд░реЗ рд░рд┐рдХреЙрд░реНрдб рдЧреНрд░рд╛рдлрд╝ рдХреЗ рдмреАрдЪ рдирдореВрдирд╛ рдзрд╛рд░рд╛рдУрдВ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рднреА рдирдореВрдирд╛ рдЦреЛрдП рдмрд┐рдирд╛ред рдЬрдмрдХрд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рд╕реЗ рдПрдХ рд╣рдорд╛рд░реЗ рд╡реАрдбрд┐рдпреЛ рдХреЛ рд╕рд╣-рдкреНрд░реЗрд╕ рдХрд░рддрд╛ рд╣реИ, рд╣рдо рджреВрд╕рд░реЗ рдЧреНрд░рд╛рдлрд╝ (рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо) рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд╣реА рд╕рдордп рдкрд░, рд╣рдо рджреВрд╕рд░рд╛ рдЧреНрд░рд╛рдл рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, GMFBridge рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд╣рд▓реЗ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВред рджреЗрдЦрд╛!

рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕реНрдкрд╖реНрдЯ рдиреБрдХрд╕рд╛рди рд╣реИрдВред рдкрд╣рд▓рд╛, рд╕рдВрд╕рд╛рдзрдиред рдЖрдкрдХреЗ рдкрд╛рд╕ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдЧреНрд░рд╛рдлрд╝ рдХреА рджреЛ рдкреНрд░рддрд┐рдпрд╛рдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬреЛ рд╕рдордЧреНрд░ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХреЛ рдирдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реАрдбрд┐рдпреЛ рдФрд░ рдСрдбрд┐рдпреЛ рджреЛрдиреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдмреЗрд╣рдж рдореБрд╢реНрдХрд┐рд▓ рд╣реИ - рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд░рд╛рдл рдХреА рдЕрдкрдиреА рдЙрд▓рдЯреА рдЧрд┐рдирддреА рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирдореВрдиреЗ рд╕реНрд╡рдпрдВ рд╡рд┐рднрд┐рдиреНрди рдзрд╛рд░рд╛рдУрдВ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рд╕рдм рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХреЗ рд╕рдордп GMFBridge рдХреЗ рд╕реНрд╡рддрдГрд╕реНрдлреВрд░реНрдд рдЬрдорд╛рд╡ рдХреЗ рдХрд╛рд░рдг рд╣реБрдЖ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдирд┐рд░реНрдгрдп рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдЙрдкрдХрд░рдг рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЦреБрд▓рд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕рдХреЗ рдЕрд╕реНрдерд┐рд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЧрдП, рдФрд░ рдореИрдВрдиреЗ рджреВрд╕рд░реА рддрд░рдл рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдЖрдкрдХрд╛ ASF рд▓реЗрдЦрдХ рд▓реЗрдЦрди

рд╡рд░реАрдпрддрд╛ рдФрд░ рд╢рд┐рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреЗ рд╕рд╛рде ред рдмрд┐рд▓рдХреБрд▓ рд╕рд╣реА! рд╣рдореЗрдВ WM ASF рд░рд╛рдЗрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЧреНрд░рд╛рдлрд╝ рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рдХрдорд╛рдВрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИред рддрдм рд╣рдо рдкрд╣рд▓рд╛ рдФрд░ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЧреНрд░рд╛рдл рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдорд╛рдирдХ WM ASF рд░рд╛рдЗрдЯрд░ рдХреЗ рдмрдЬрд╛рдп рд╣рдорд╛рд░реЗ рдХрд╕реНрдЯрдо рдлрд╝рд┐рд▓реНрдЯрд░ рд╡рд╣рд╛рдВ рдбрд╛рд▓реЗрдВ рдФрд░ рдЬреАрд╡рди рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВред
рдЖрдЗрдП рдорд╛рдирдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рдФрд░ рдирдИ рд╕реНрдЯреНрд░реАрдордЯреЙрдЗрд▓ рдЬреЛрдбрд╝рдХрд░ рд╣рдорд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдмрдирд╛рдПрдВ, рдЬреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
class CCustomASFWriter : public CBaseFilter { public: STDMETHOD(StreamToFile)(BSTR szFileName); } 

рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕рднреА рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рднрд┐рдиреНрди рдЕрддрд┐рд░рд┐рдХреНрдд рдЪреЗрдХ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЖрджрд┐ред

рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХреЗ рд╕рдордп рдирдореВрдиреЗ рдирд╣реАрдВ рдЦреЛрдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдирдореВрдирд╛ рд╡рд┐рддрд░рдг рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдХрддрд╛рд░ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдХрдИ рдЙрддреНрдкрд╛рджрдХреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ - рдПрдХрд▓ рдЙрдкрднреЛрдХреНрддрд╛ рдореЛрдбред рдореИрдВрдиреЗ рд╡реАрдбрд┐рдпреЛ рдФрд░ рдСрдбрд┐рдпреЛ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрддрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдФрд░ рдЗрд╕реАрд▓рд┐рдПред рдпрд╣ рд╕рдм рд╣рдорд╛рд░реА рдирдИ рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╡реАрдбрд┐рдпреЛ рдХреЗ рдирдореВрдиреЛрдВ рдХреА рдбрд┐рд▓реАрд╡рд░реА рдХреА рдЖрд╡реГрддреНрддрд┐, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдСрдбрд┐рдпреЛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 30 рд╣рд░реНрдЯреНрдЬ рд╡реАрдбрд┐рдпреЛ рдФрд░ рдСрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП 2 рд╣рд░реНрдЯреНрдЬ (500 рдПрдордПрд╕ рдкреНрд░рддрд┐ рдирдореВрдирд╛)ред рддрджрдиреБрд╕рд╛рд░, рдСрдбрд┐рдпреЛ рдирдореВрдирд╛ рдХреЗ рд╡рд┐рддрд░рдг рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрддрд╛рд░ рдореЗрдВ рдирдореВрдиреЛрдВ рдХреЗ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдХреНрд░рдо рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЖрдк рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдорд╛рд░реА StreamToFile рд╡рд┐рдзрд┐ рдХреЗрд╡рд▓ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рд╕рдВрдХреЗрдд рджреЗрдЧреА рдХрд┐ рдпрд╣ рдЕрдЧрд▓реЗ рдСрдбрд┐рдпреЛ рдирдореВрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрдВрдж рдХрд░ рджреЗ рдФрд░ рдПрдХ рдирдП рдореЗрдВ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░ рджреЗред рдЬрдмрдХрд┐ рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рддреИрдпрд╛рд░ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ, рд╕рднреА рдЖрд╡рдХ рдирдореВрдиреЗ рдХрддрд╛рд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВред
 HRESULT STDMETHODCALLTYPE CCustomASFWriter::StreamToFile(BSTR szFileName) { wcscpy_s(m_szCurrentFile, szFileName); { CAutoLock lock(m_pLock); m_bSwitchRequested = TRUE; } return S_OK; } 

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдкреАрдбрд╝рди рдФрд░ рд▓реЗрдЦрди рд╕реНрд╡рдпрдВ рд╡рд┐рдВрдбреЛрдЬ рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╛рд░реВрдк рдПрд╕рдбреАрдХреЗ , рдЕрд░реНрдерд╛рддреН IWMWriter рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣реЛрддрд╛ рд╣реИред
  IWMWriter *pWriter = NULL; WMCreateWriter(NULL, &pWriter); 

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрд▓рдЧ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ, рдЖрдиреЗ рд╡рд╛рд▓реЗ рдирдореВрдиреЛрдВ рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЪрдХреНрд░ рдШреБрдорд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
  while (bRunning) { StreamSamplesToWriter(pWriter); DWORD dwWaitResult = WaitForSingleObject(hEventStopStreaming, 33); if (dwWaitResult == WAIT_OBJECT_0) { m_pPinVideo->StopQueuingNow(); m_pPinAudio->StopQueuingNow(); bRunning = FALSE; } } 

рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд StreamSamplesToWriter рд╡рд┐рдзрд┐ рдореЗрдВ рд╣реЛрддреА рд╣реИред рдпрд╣рд╛рдВ, рдирдореВрдиреЗ IWMWriter рдХреЛ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ , рдФрд░ рд╕рд╣реА рд╕рдордп рдкрд░ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рд╕реНрдЯреНрд░реАрдордЯреЙрдлрд╛рдЗрд▓ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
 STDMETHODIMP CCustomASFWriter::StreamSamplesToWriter(IWMWriter *pWriter) { BOOL bMustSwitch = FALSE; void *pObject = NULL; while (m_pSamplesQueue->Pop(pObject)) { CQueuedSample *pSample = (CQueuedSample*)pObject; DWORD inputNumber = pSample->MediaType == MEDIATYPE_Video ? m_pPinVideo->InputNumber : m_pPinAudio->InputNumber; INSSBuffer *pBuffer = NULL; pWriter->AllocateSample(pSample->DataSize, &pBuffer); LPBYTE pbDestBuffer = NULL; pBuffer->GetBuffer(&pbDestBuffer); CopyMemory(pbDestBuffer, pSample->Data, pSample->DataSize); pWriter->WriteSample(inputNumber, pSample->Start, pSample->IsDiscontinuity | pSample->IsSyncPoint, pBuffer); pBuffer->Release(); if (inputNumber == m_pPinAudio->InputNumber) { { CAutoLock lock(m_pLock); bMustSwitch = m_bSwitchRequested; if (m_bSwitchRequested) m_bSwitchRequested = FALSE; } if (bMustSwitch) { pWriter->EndWriting(); pWriter->SetOutputFilename(m_szCurrentFile); pWriter->BeginWriting(); } } delete pSample; } } 

рдЗрд╕рд▓рд┐рдП, рд╣рдо рдПрдХ рдкрд░рд┐рдгрд╛рдо рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ! рд╕рдордп рдореЗрдВ рдордирдорд╛рдирд╛ рдмрд┐рдВрджреБрдУрдВ рдкрд░ StreamToFile рдкрджреНрдзрддрд┐ рдХреЛ рдЦреАрдВрдЪрддреЗ рд╣реБрдП , рд╣рдореЗрдВ рдирдИ рдлрд╛рдЗрд▓реЗрдВ рдорд┐рд▓рддреА рд╣реИрдВ, рдмрд┐рдирд╛ рдПрдХ рднреА рдлреНрд░реЗрдо рдЦреЛрдПред

рдХрдЯ рдХреЛ рдЧреЛрдВрдж рдХрд░реЗрдВ

рдЦреИрд░, рд╣рдореЗрдВ рджреЛ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдорд┐рд▓рд╛ред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдореЗрдВ 4-рдорд┐рдирдЯ рдХреЗ рд╡реАрдбрд┐рдпреЛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рджреВрд╕рд░реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╕рдордп рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдЬрдЧрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЗрдЦреА рдЬрд╛рддреА рд╣реИ? рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ - рд╣рдо рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдореЗрдВ рдЧреЛрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЧреНрд▓реВрдЗрдВрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрдмрд╛рдз рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдПрдХ рднреА рдлреНрд░реЗрдо рдирд╣реАрдВ рдЦреЛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо IWMSyncReader рдФрд░ IWMWriterAdvanced рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
  IWMWriter *pWriter = NULL; IWMWriterAdvanced *pWriterA = NULL; WMCreateWriter(NULL, &pWriter); pWriter->QueryInterface(IID_IWMWriterAdvanced, (void**)&pWriterA; IWMSyncReader *pReader = NULL; WMCreateSyncReader(NULL, 0, &pReader); for (element = m_oMergeFileList.begin(); element < m_oMergeFileList.end(); element ++) { pReader->Open(element->FileName); IWMProfile *pProfile = NULL; pReader->QueryInterface(IID_IWMProfile, (void**)&pProfile); //   ,      ,      " " for (WORD i = 0; i < dwStreamCount; i++) { pProfile->GetStream(i, &pStream); pStream->GetStreamNumber(&wStreamNumber); pReader->SetReadStreamSamples(wStreamNumber, TRUE); } HRESULT hr = S_OK; while (SUCCEEDED(hr)) { hr = pReader->GetNextSample(0, &pSample, &cnsSampleTime, &cnsDuration, &dwFlags, &dwOutputNum, &wStreamNum); pWriterA->WriteStreamSample(wStreamNum, qwSampleTimeToWrite, 0, cnsDuration, dwFlags, pSample); } } 

рдирддреАрдЬрддрди, рдмрд╣реБрдд рдЬрд▓реНрджреА (рдорд┐рд▓реАрд╕реЗрдХрдВрдб!) рд╣рдореЗрдВ 4 рдорд┐рдирдЯ рд▓рдВрдмреА рдПрдХ рдлрд╛рдЗрд▓ рдорд┐рд▓рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЧреНрд▓реВрдЗрдВрдЧ рдХреА рдЬрдЧрд╣ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдХрдбрд╝рд╛рдИ рд╕реЗ рдмреЛрд▓рддреЗ рд╣реБрдП, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдЪ рдирд╣реАрдВ рд╣реИ, рдФрд░ рджреБрд░реНрд▓рдн рдФрд░ рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд gluing рдЕрднреА рднреА рдЗрддрдирд╛ рд╕рд╣реА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреИрдорд░реЗ рдкрд░ рдмрд╣реБрдд рдХрдо рдлреНрд░реЗрдо рджрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдЬрдм рдЗрд╕ рдЬрдЧрд╣ рдХреЛ рджреЗрдЦрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред

рдореИрдВ рднреА рдХрдЯреМрддреА рдФрд░ рдЧреЛрдВрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ!

рдореИрдВ рд╡рд╣рд╛рдБ рдирд╣реАрдВ рд░реБрдХрд╛ рдФрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдПрдХ рдЬрд╛рджреВ рдмрдЯрди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдЖрдкрдХреЛ рдЕрдВрддрд┐рдо рдорд┐рдирдЯ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╛рдВрдЫрд┐рдд рдЕрд╡рдзрд┐ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╣реИ)ред рдкрд░реАрдХреНрд╖рдХ рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛ рдЧрдпрд╛ - рдореИрдВрдиреЗ рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддреНрд░реБрдЯрд┐ рджреЗрдЦреА, рдПрдХ рдмрдЯрди рджрдмрд╛рдпрд╛, рдПрдХ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред

рдореИрдВ рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдПрдХ рдмрдЯрди рдХреЛ рд▓рдЧрднрдЧ рддреБрд░рдВрдд рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рдореНрди рдлрд╝рд╛рдЗрд▓ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИ:

рдЬрдм рдЖрдк рдореИрдЬрд┐рдХ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ , рддреЛ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдПрдХ рдирдИ рдлрд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдлрд╛рдЗрд▓ 2 рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рдПред рд▓реЗрдХрд┐рди рдЕрдм рд╣рдореЗрдВ рдЕрднреА рднреА рдлрд╛рдЗрд▓ 1 рдХреЛ рдХрд╛рдЯрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдФрд░ рдлрд┐рд░ рдлрд╛рдЗрд▓ 2 рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдЧреЛрдВрдж рджреЗрдВред

рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЧреНрд▓реВрдЗрдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рдФрд░ рдХрдЯрд┐рдВрдЧ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ: рд╕рдВрдкреАрдбрд╝рд┐рдд рдкреИрдХреЗрдЯ рдмрд┐рдирд╛ рд╡рд┐рд╕рдВрдкреАрдбрд╝рди рдХреЗ рдкрдврд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕рднреА рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рд╕рдордп рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реБрдП, рд╕рднреА рдкрдардиреАрдп рдкреИрдХреЗрдЯреЛрдВ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдкрд╣рд▓реЗ рдкреИрдХреЗрдЯ рдореЗрдВ 00:00:00 рд╣реЛред рдпрд╣рд╛рдВ рдХрд╛рдЯрдиреЗ рдХрд╛ рд╕рд╣реА рдХреНрд╖рдг рдЪреБрдирдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдирдИ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкрд╣рд▓реЗ рдкреИрдХреЗрдЯ рдореЗрдВ рд╕рдВрджрд░реНрдн рдлреНрд░реЗрдо (рдХреБрдВрдЬреА рдпрд╛ рдЖрдИ-рдлреНрд░реЗрдо) рд╣реЛ, рди рдХрд┐ рдЕрдиреБрдорд╛рдирд┐рдд рдкреА-рдлреНрд░реЗрдо (рдбреЗрд▓реНрдЯрд╛ рдлреНрд░реЗрдо)ред рд╕рдВрджрд░реНрдн рдлреНрд░реЗрдо рдХреЛ WMV рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣рд░ рдЖрдзреЗ рдорд┐рдирдЯ рдореЗрдВ рдПрдХ рдмрд╛рд░ рднреА рдЪрд┐рддреНрд░ рдореЗрдВ рдЫреЛрдЯреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдордЬрдмреВрд░рди рдлреНрд░реЗрдо рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдореИрдВрдиреЗ 1 рдПрд╕ рдХреЗ рджреЛ рд╕рдВрджрд░реНрдн рдлреНрд░реЗрдо рдХреЗ рдмреАрдЪ рдЕрдзрд┐рдХрддрдо рдЕрд╡рдзрд┐ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрдм рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐ рд╕рдЯреАрдХрддрд╛ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдордЭреМрддрд╛ рд╣реБрдЖред

  IWMVideoMediaProps *pVMProps = NULL; pStreamConfig->QueryInterface(IID_IWMVideoMediaProps, (void**)&pVMProps); pVMProps->SetMaxKeyFrameSpacing(10000000i64); 

рд╣реБрд░реНрд░реЗ! рдЬрд╛рджреВ рдмрдЯрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

рдирд┐рд╖реНрдХрд░реНрд╖

рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рджрдо рдкрд░ DirectShow рдХреА рд╕рднреА рдкреЗрдЪреАрджрдЧрд┐рдпреЛрдВ рдХреЛ рд╕рдордЭрд╛ - MSDN, рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХреЛрдб рдирдореВрдиреЗ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдФрд░ рддреНрд░реБрдЯрд┐ рд╡рд┐рдзрд┐ред рд▓реЗрдХрд┐рди рдпрд╣ рдареАрдХ рд╡рд╣реА рд╣реИ рдЬрд┐рд╕рдиреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЗрддрдирд╛ рд╕реБрдЦрдж рдмрдирд╛ рджрд┐рдпрд╛ - рд╡реАрдбрд┐рдпреЛ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╕рд╛рде рдХрдИ рдХреИрдорд░реЛрдВ рд╕реЗред рдЬрдм рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд░реАрдХреНрд╖рдХ рдЦреБрд╢реА рд╕реЗ рдЬрд╛рджреВ рдХреЗ рдмрдЯрди рдкрд░ рдкреНрд░рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ 2 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рднреА рд╡реАрдбрд┐рдпреЛ рд╕рдВрдкрд╛рджрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рддреАрди рдХреИрдорд░реЛрдВ рд╕реЗ рддреИрдпрд╛рд░ рдФрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ! рдФрд░ рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдЗрддрдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж, рдареАрдХ рд╣реИ?

Source: https://habr.com/ru/post/In208788/


All Articles