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

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

рдПрдХ рдФрд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╡реАрдбрд┐рдпреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ, рдЖрдЬ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рдерд╛ред рдХреИрдорд░реЗ рд╕реЗ рдПрдХ рддрд╕реНрд╡реАрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ
рд░рд╣рд╕реНрдпрдордп рдХреЛрдб рдХреЗ рдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдпрд╛рдХреБрдд рд╢рдорд╕рд╛рди рдХреЗ рдордВрддреНрд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХрдорд╛рддреНрд░ рдЕрд╢реБрджреНрдзрд┐ рд╕реЗ рдЖрд╡реЗрджрди рдХрд╛ рдПрдХ рдкреВрд░рд╛ рджреБрд░реНрдШрдЯрдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдкрд┐рдЫрд▓реЗ рдХреИрдорд░рд╛ рдПрдкреАрдЖрдИ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдЬрд╣рд╛рдВ рддреИрдпрд╛рд░ рдХреЙрд▓рдмреИрдХ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдЦреБрдж рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдкреЗрди рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣ рдЧрддрд┐рд╡рд┐рдзрд┐, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдпрд╣ рджрд┐рд▓ рдХреЗ рдмреЗрд╣реЛрд╢ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред
рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдЖрдк рдХрд╛рдо рдХреЗ
рдХреЛрдб рдХреЛ рджреВрд░ рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд▓рдЧрддрд╛ рд╣реИред рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ - рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рдбрд╛рд▓рдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕рд╣реА рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рдХрдард┐рди рд╣реИред
рд╣рд╛рдБ, рдФрд░ рдареЛрд╕ рд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХрдо рд╕реЗ рдХрдо рдЖрд░рд╛рдо рд╕реЗред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЧрдбрд╝рдмрдбрд╝
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, Google рдмрд┐рд▓реНрдбрд░реЛрдВ рдиреЗ
рд╕рд░рдлреЗрд╕ рдХреА рдЬрд╛рджреБрдИ рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреЗрд╢ рдХреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╡рд┐рд╡рд░рдгреЛрдВ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдбреЗрд╡рд▓рдкрд░ рдХрд┐рд╕ рдХреАрдордд рдкрд░ рдФрд░ рдХреНрдпрд╛ рдЦреЛрддрд╛ рд╣реИ, рдпрд╣ рд╕рдордЭрдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЖрдо рдЖрджрдореА рдХреЗ рд░реВрдк рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рд▓рдЧрднрдЧ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ: "рдПрдВрдбреНрд░реЙрдЗрдб, рдЗрд╕ рд╕рд░рдлреЗрд╕ рдХреЛ рд▓реЗрдВ, рдЬрд┐рд╕ рдкрд░ рдХреИрдорд░реЗ рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рдХреБрдЫ рднреА рдмрджрд▓реЗ рдмрд┐рдирд╛, рдареАрдХ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реИ, рдХреЛрдб рдФрд░ рднреЗрдЬ рджреЛред тАЭ рдФрд░ рд╕рдмрд╕реЗ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдФрд░ рдирдП рдХреИрдорд░рд╛ 2 рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЦреБрдж рдкрддрд╛ рд╣реИ рдХрд┐ рдХрдм рдбреЗрдЯрд╛ рднреЗрдЬрдирд╛ рд╣реИ, рдирдП рдХреЙрд▓рдмреИрдХ рджрд┐рдЦрд╛рдИ рджрд┐рдП рд╣реИрдВ!
рддреЛ рдЕрдм рд╡реАрдбрд┐рдпреЛ рдХреЛ рдПрдирдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдмрд╕ рдереВрдХред рдЕрдм рд╣рдо рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗред
рд╣рдо
рдкрд╣рд▓реЗ рд▓реЗрдЦ рд╕реЗ рдХреЛрдб рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдмрдЯрди рдФрд░ рдХреИрдорд░рд╛ рдЖрд░рдВрднреАрдХрд░рдг рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЗрд╕рдореЗрдВ рд╕реЗ рд╕рдм рдХреБрдЫ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВред
рдЖрдЗрдП рдРрдк рдХреЗ рд▓рд┐рдП рд▓реЗрдЖрдЙрдЯ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВред<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextureView android:id="@+id/textureView" android:layout_width="356dp" android:layout_height="410dp" android:layout_marginTop="32dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.49" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <LinearLayout android:layout_width="292dp" android:layout_height="145dp" android:layout_marginStart="16dp" android:orientation="vertical" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textureView" app:layout_constraintVertical_bias="0.537"> <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text=" " /> <Button android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text=" " /> <Button android:id="@+id/button3" android:layout_width="match_parent" android:layout_height="wrap_content" android:text=" " /> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout>
рдФрд░ рдореАрдбрд┐рдпрд╛ рдХреЛрдбреЗрдХ рд╣реБрдХрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ
рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдордиреЗ рдХреИрдорд░реЗ рд╕реЗ рд╕рддрд╣ рдкрд░ рдЫрд╡рд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдФрд░ MediaRecorder рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрд╕рд╕реЗ рд╡реАрдбрд┐рдпреЛ рд▓рд┐рдЦрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рднреВрддрд▓ рд╕реВрдЪреА рдореЗрдВ рджреЛрдиреЛрдВ рдШрдЯрдХреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ред
(Arrays.asList(surface, mMediaRecorder.getSurface()).
рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдмрд╛рдд, рдХреЗрд╡рд▓ mMediaRecorder рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ:
(Arrays.asList(surface, mEncoderSurface),
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛, рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
private void startCameraPreviewSession() { SurfaceTexture texture = mImageView.getSurfaceTexture(); texture.setDefaultBufferSize(320, 240); surface = new Surface(texture); try { mPreviewBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW); mPreviewBuilder.addTarget(surface); mPreviewBuilder.addTarget(mEncoderSurface); mCameraDevice.createCaptureSession(Arrays.asList(surface, mEncoderSurface), new CameraCaptureSession.StateCallback() { @Override public void onConfigured(CameraCaptureSession session) { mSession = session; try { mSession.setRepeatingRequest(mPreviewBuilder.build(), null, mBackgroundHandler); } catch (CameraAccessException e) { e.printStackTrace(); } } @Override public void onConfigureFailed(CameraCaptureSession session) { } }, mBackgroundHandler); } catch (CameraAccessException e) { e.printStackTrace(); } }
MEncoderSurface рдХреНрдпрд╛ рд╣реИ? рдФрд░ рдпрд╣ рд╡рд╣реА рднреВрддрд▓ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде Media Codec рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдмрд╕ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рджреЛрдиреЛрдВ рдХреЛ рд▓рдЧрднрдЧ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
private void setUpMediaCodec() { try { mCodec = MediaCodec.createEncoderByType("video/avc");
рдЕрдм рдпрд╣ рд╕рд┐рдВрдЧрд▓ рдХреЙрд▓рдмреИрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдЬрдм рдореАрдбрд┐рдпрд╛ рдХреЛрдбреЗрдХ рдЕрдЪрд╛рдирдХ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдЧреЗ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓рд╛ рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рд╣реИ, рддреЛ рд╡рд╣ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░реЗрдЧрд╛:
private class EncoderCallback extends MediaCodec.Callback { @Override public void onInputBufferAvailable(MediaCodec codec, int index) { } @Override public void onOutputBufferAvailable(MediaCodec codec, int index, MediaCodec.BufferInfo info) { outPutByteBuffer = mCodec.getOutputBuffer(index); byte[] outDate = new byte[info.size]; outPutByteBuffer.get(outDate); Log.i(LOG_TAG, " outDate.length : " + outDate.length); mCodec.releaseOutputBuffer(index, false); } @Override public void onError(MediaCodec codec, MediaCodec.CodecException e) { Log.i(LOG_TAG, "Error: " + e); } @Override public void onOutputFormatChanged(MediaCodec codec, MediaFormat format) { Log.i(LOG_TAG, "encoder output format changed: " + format); } }
рдЖрдЙрдЯрдбреЗрдЯ рдмрд╛рдЗрдЯ рд╕рд░рдгреА рдПрдХ рдЕрд╕рд▓реА рдЦрдЬрд╛рдирд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдПрдХ рдПрдиреНрдХреЛрдбреЗрдб H264 рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдХреЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЯреБрдХрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд╕рд╛рде рд╣рдо рдЕрдм рдЬреЛ рдЪрд╛рд╣реЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣рд╛рдБ рд╡реЗ рд╣реИрдВ ...

рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЯреБрдХрдбрд╝реЗ рдмрд╣реБрдд рдмрдбрд╝реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдирд╣реАрдВ, рд╕рд┐рд╕реНрдЯрдо, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЦреБрдж рд╕реЗ рдХрд╛рдЯ рд▓реЗрдВрдЧреЗ рдФрд░ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЛ рднреЗрдЬ рджреЗрдВрдЧреЗред
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдмрд╣реБрдд рдбрд░рд╛рд╡рдирд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рд╣рд┐рд▓рд╛рдХрд░ рдЦреБрдж рдХреЛ рдХрд╛рдЯ рд╕рдХрддреЗ рд╣реИрдВ
int count =0; int temp =outDate.length ; do {
рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкрд╣рд▓реЗ рдпрд╣ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдмрдлрд░ рдореЗрдВ рдбреЗрдЯрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдПрдЪ 264 рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рднреЗрдЬреЗрдВ:
рд╣рдо рд╕реЗрдЯрдЕрдк рдореЗрдВ рд▓рд┐рдЦреЗрдВрдЧреЗ:
private void setUpMediaCodec() { File mFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "test3.h264"); try { outputStream = new BufferedOutputStream(new FileOutputStream(mFile)); Log.i("Encoder", "outputStream initialized"); } catch (Exception e) { e.printStackTrace(); }
рдФрд░ рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдмрдлрд░ рдХрд╣рд╛рдВ рд╣реИ:
try { outputStream.write(outDate, 0, outDate.length);
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЦреЛрд▓реЗрдВ, рдмрдЯрди рджрдмрд╛рдПрдВ: "рдХреИрдорд░рд╛ рдФрд░ рдЪрд░рдг рдкрд░ рдирд┐рд╢рд╛рди"ред рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдЕрдкрдиреЗ рдЖрдк рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рд╣рдо рдереЛрдбрд╝рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдЯреЙрдк рдмрдЯрди рджрдмрд╛рддреЗ рд╣реИрдВред
рд╕рд╣реЗрдЬреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЦреЛ рдирд╣реАрдВ рдЬрд╛рдПрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рд╛рд░реВрдк MP4 рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЗрд╕реЗ VLC рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕рд╛рде рдЦреЛрд▓рддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕реЗ
ONLINE CONVERT рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдирд▓рд╛рдЗрди рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╣рдо рд╕рд╣реА рд░рд╛рд╕реНрддреЗ рдкрд░ рд╣реИрдВред рд╕рдЪ рд╣реИ, рдЫрд╡рд┐ рдЗрд╕рдХреЗ рдХрд┐рдирд╛рд░реЗ рдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдареАрдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ, рдлреЛрдЯреЛ рдпрд╛ рд╕реНрдЯреНрд░реАрдо рдХреА рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдпрд╛ рд╕рддреНрд░ рдЦреЛрд▓рдирд╛ рдФрд░ рдкреБрд░рд╛рдиреЗ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ред рдпрд╣реА рд╣реИ, рдкрд╣рд▓реЗ рд╣рдо рдХреИрдорд░реЗ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдирдВрдЧреЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░, рдпрджрд┐ рдЖрдкрдХреЛ рдЪрд┐рддреНрд░ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдмрдВрдж рдХрд░реЗрдВ рдФрд░ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдЦреЛрд▓реЗрдВ, рд▓реЗрдХрд┐рди рдЫрд╡рд┐ рд░реАрдбрд░ рдХреЗ рд╕рд╛рде рдмрдиреНрдзрдиред рдпрджрд┐ рд╣рдо рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд░реНрддрдорд╛рди рд╕рддреНрд░ рдмрдВрдж рдХрд░реЗрдВ рдФрд░ рд╕рддреНрд░ рдХреЛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдФрд░ рдореАрдбрд┐рдпрд╛ рд░рд┐рдХреЙрд░реНрдбрд░ рдХреЗ рд╕рд╛рде рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВред рдореИрдВрдиреЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛, рддрд╛рдХрд┐ рдХреЛрдб рдХреА рджреГрд╢реНрдпрддрд╛ рдХреЛ рдиреБрдХрд╕рд╛рди рди рд╣реЛ, рдФрд░ рдЖрдк рддрдп рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рдФрд░ рдпрд╣рд╛рдБ рдкреВрд░рд╛ рдХреЛрдб рд╣реИред
BasicMediaCodec package com.example.basicmediacodec; import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; import androidx.core.content.ContextCompat; import android.Manifest; import android.content.Context; import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.graphics.SurfaceTexture; import android.hardware.camera2.CameraAccessException; import android.hardware.camera2.CameraCaptureSession; import android.hardware.camera2.CameraDevice; import android.hardware.camera2.CameraManager; import android.hardware.camera2.CaptureRequest; import android.media.MediaCodec; import android.media.MediaCodecInfo; import android.media.MediaFormat; import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.HandlerThread; import android.os.StrictMode; import android.util.Log; import android.view.Surface; import android.view.TextureView; import android.view.View; import android.widget.Button; import android.widget.Toast; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.nio.ByteBuffer; import java.util.Arrays; public class MainActivity extends AppCompatActivity { public static final String LOG_TAG = "myLogs"; public static Surface surface = null; CameraService[] myCameras = null; private CameraManager mCameraManager = null; private final int CAMERA1 = 0; private Button mButtonOpenCamera1 = null; private Button mButtonStreamVideo = null; private Button mButtonTStopStreamVideo = null; public static TextureView mImageView = null; private HandlerThread mBackgroundThread; private Handler mBackgroundHandler = null; private MediaCodec mCodec = null;
рдФрд░ рдкреНрд░рдХрдЯ рдореЗрдВ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ред
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.INTERNET"/>
рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдореАрдбрд┐рдпрд╛ рдХреЛрдбреЗрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдлрд╛рдЗрд▓ рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рд░реВрд╣рд╛рдиреА рд╣реИред рдореАрдбрд┐рдпрд╛ рд░рд┐рдХреЙрд░реНрдбрд░ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдзреНрд╡рдирд┐ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдлрд╝рд╛рдЗрд▓ рднрд╛рдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджреЗрдВрдЧреЗ рдФрд░ udp рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЛрдб рдмреНрд▓реЙрдХ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рднреА рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдпреВрдбреАрдкреА рд╕рд░реНрд╡рд░ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВред
DatagramSocket udpSocket; String ip_address = "192.168.1.84";
рдФрд░ рдЙрд╕реА рдХреЙрд▓рдмреИрдХ рдореЗрдВ, рдЬрд╣рд╛рдВ рд╣рдордиреЗ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рддрддреНрдкрд░рддрд╛ рдбреЗрдЯрд╛ рднреЗрдЬрд╛ рдерд╛, рдЕрдм рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд╣реЛрдо рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдбреЗрдЯрд╛рдЧреНрд░рд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬреЗрдВрдЧреЗ (рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╕рднреА рдХреЗ рдкрд╛рд╕ рд╣реИ?)
try { DatagramPacket packet = new DatagramPacket(outDate, outDate.length, address, port); udpSocket.send(packet); } catch (IOException e) { Log.i(LOG_TAG, " UDP "); }
рдХреНрдпрд╛ рд╡рд╣ рд╕рдм рд╣реИ?
рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд╣реАрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдЪрдордХ рдЬрд╛рдПрдЧрд╛ред рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рд╕рд┐рд╕реНрдЯрдо рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рдзрд╛рд░рд╛ рдореЗрдВ рд╣рдо рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛рдЧреНрд░рд╛рдо рдкреИрдХреЗрдЯ рднреЗрдЬрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдШрдмрд░рд╛рдиреЗ рдХреА рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрджреНрдпрдкрд┐ рд╣рдо рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдореЗрдВ рд╣реИрдВ, рдлрд┐рд░ рднреА рд╣рдо рдХреЙрд▓рдмреИрдХ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ рдХреЛ udp рдкреИрдХреЗрдЯ рднреЗрдЬрдирд╛ рдПрдХ рд╣реА рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред рд╣рдо рдХреЗрд╡рд▓ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдкреИрдХреЗрдЯ рднреЗрдЬрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рддрд╛рдХрд┐ Android рд╡рд┐рджреНрд░реЛрд╣ рди рдХрд░реЗ, рд╣рдо рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рджреЛ рд▓рд╛рдЗрдиреЗрдВ рдЬреЛрдбрд╝реЗрдВрдЧреЗ:
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy);
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЫреЛрдЯреЗ
рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдбреЗрдореЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд┐рдХрд▓реЗрдВрдЧреЗ:
package com.example.basicmediacodec; import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; import androidx.core.content.ContextCompat; import android.Manifest; import android.content.Context; import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.graphics.SurfaceTexture; import android.hardware.camera2.CameraAccessException; import android.hardware.camera2.CameraCaptureSession; import android.hardware.camera2.CameraDevice; import android.hardware.camera2.CameraManager; import android.hardware.camera2.CaptureRequest; import android.media.MediaCodec; import android.media.MediaCodecInfo; import android.media.MediaFormat; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.StrictMode; import android.util.Log; import android.view.Surface; import android.view.TextureView; import android.view.View; import android.widget.Button; import android.widget.Toast; import java.io.BufferedOutputStream; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.nio.ByteBuffer; import java.util.Arrays; public class MainActivity extends AppCompatActivity { public static final String LOG_TAG = "myLogs"; public static Surface surface = null; CameraService[] myCameras = null; private CameraManager mCameraManager = null; private final int CAMERA1 = 0; private Button mButtonOpenCamera1 = null; private Button mButtonStreamVideo = null; private Button mButtonTStopStreamVideo = null; public static TextureView mImageView = null; private HandlerThread mBackgroundThread; private Handler mBackgroundHandler = null; private MediaCodec mCodec = null;
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рджреВрд╕рд░реЗ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд░реЗрдб рдиреЛрдЯ 7 рдкрд░ рдЖрдк рдпрд╣ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд╣реА рдкрддреЗ рдкрд░ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдХреИрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдРрд╕реЗ udp рд╕реЙрдХреЗрдЯ рд╣реИрдВ, рдиреЗрдЯрд╡рд░реНрдХ рдмреИрдВрдбрд╡рд┐рдбреНрде рдХрд┐рддрдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЬрд╣рд╛рдВ рдкрддреЗ рд╣реИрдВред рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рд╕рд╛рд░рдг рд╣реЛрдЧрд╛ред
рдЕрдм рдЪрд▓реЛ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╡рд╛рдВрдЫрд┐рдд рдкрддреЗ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВ
рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рд░ рдХрдВрдкреНрдпреВрдЯрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдПрдХрд▓ udp рдЪреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ H264 рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдЕрд╡рд╢реЛрд╖рд┐рдд рдФрд░ рдкрдЪрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрддреНрдпрдВрдд рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЬреНрдЮрд╛рдд
рд╡реАрдПрд▓рд╕реА рдореАрдбрд┐рдпрд╛
рдкреНрд▓реЗрдпрд░ рд╣реИ ред рдпрд╣ рдЗрддрдиреА рд╢рд╛рдВрдд рдЪреАрдЬ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд▓реЗрдЦ рд╕реЗ рдЖрдкрдХреЛ рдкреВрд░реА рдХрд┐рддрд╛рдм рдорд┐рд▓рддреА рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЗрд╕реЗ рд▓рдЧрд╛рдПрдВред
рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢реЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, udp рдкреИрдХреЗрдЯ рдЗрд╕ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдкрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВред
URL syntax: file:
рдФрд░ рдпреЗ рд╕рднреА рд╕реНрд░реЛрдд рдкрддреЗ рдФрд░ рдмрд╛рдЗрдВрдб рдПрдбреНрд░реЗрд╕, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИрдВред рдХреЗрд╡рд▓ рд╕реБрдирдиреЗ рдХреЗ рдмрдВрджрд░рдЧрд╛рд╣ рдХреА рдЬрд░реВрд░рдд рд╣реИред
рдФрд░ рдлрд┐рд░ рднреА, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рдЗрд╕ рдкреЛрд░реНрдЯ рдХреЛ рд╕реБрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП (рдорд╛рд▓рд╡рд╛рд░)
рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдЖрдкрдХреЛ рд╕рдВрд╕рд╛рдзрди рдореЙрдирд┐рдЯрд░ рд╕реЗ рдкреНрд░рд┐рдВрдЯ рд╕реНрдХреНрд░реАрди рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ?рдпрд╛ рдЖрдк рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдореИрдВ рдЗрд╕рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛)редрдЗрд╕рд▓рд┐рдП, рдЗрди рдХрд╛рдВрдЯреЛрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдиреЗ рдкрддреЗ рдХреЗ рд╕рд╛рде рд╡реАрдПрд▓рд╕реА рдкреНрд▓реЗрдпрд░ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд░рд┐рдХреНрдд рд╕реНрдХреНрд░реАрди рдХрд╛ рдЖрдирдВрдж рд▓реЗрддреЗ рд╣реИрдВред рдХреЛрдИ рд╡реАрдбрд┐рдпреЛ рдирд╣реАрдВредрдРрд╕рд╛ рдХреИрд╕реЗ?
рдФрд░ рдРрд╕рд╛ рд╣реИред рдЖрдкрдХреЗ рдкрд╛рд╕ рд╢рд╛рдпрдж VLC 3.08 рд╡реЗрдЯрд┐рдирд░реА рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ? рдпрд╣реА рд╣реИ, udp рдХреЗ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдпрд╣ рдкрджрд╛рд╡рдирдд рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЧрдбрд╝рдмрдбрд╝ рд╣реЛ рдЧрдпрд╛ рд╣реИредрддреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рддрд░реНрдХ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЛ рдЖрдЬрдХрд▓ рдирдВрдЧреЗ udp рдЪреИрдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐:рдЗрд╕рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреНрдп рд▓реЛрдЧ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрд░рдЯреАрдкреА рдФрд░ рдЕрдиреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдкрд░ - рдЖрдк рд╡реИрд╕реЗ рднреА рдПрдХ рд╕рд░реНрд╡рд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдпреВрдбреАрдкреА (рдЧрддрд┐ рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рд╛рде рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рд╡рд╣ рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреА рдмреИрдВрдбрд╡рд┐рдбреНрде рдХреНрдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХреЛ рдмрдврд╝рд╛рдирд╛ рдпрд╛ рдШрдЯрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрдм рдХреНрдпрд╛ рдЫрд╡рд┐ рд╡рд┐рд╕реНрддрд╛рд░ рдЗрд╖реНрдЯрддрдо рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдФрд░ рдЖрдЧреЗред рдлрд┐рд░, рдХрднреА-рдХрднреА рдзреНрд╡рдирд┐ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдФрд░ рдЙрд╕рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╡реАрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рдиредрджреЗрдЦрд┐рдП, Odnoklassniki рдХреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рднреА рджрд░реНрдЬ рдХрд░рдирд╛ рдкрдбрд╝рд╛ ред рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдХрд╛рд░реНрдп, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ - рджреБрдирд┐рдпрд╛ рднрд░ рдХреЗ рд▓рд╛рдЦреЛрдВ рдЧреГрд╣рд┐рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡реАрдбрд┐рдпреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдПред рд╡рд╣рд╛рдВ рдЖрдк рдПрдХ udp рдЪреИрдирд▓ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗредрд▓реЗрдХрд┐рди рд╣рдо рдЕрдкрдиреЗ рдЖрд░рдЯреАрдкреА рд╕рд░реНрд╡рд░ рдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдХрд┐рд╕реА рддрд░рд╣ рджреБрдЦреА рд╣реИрдВред рд╢рд╛рдпрдж, рдЖрдк рддреИрдпрд╛рд░-рддреИрдпрд╛рд░ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореБрдлреНрдд рднреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдЗрдП рдЕрдм рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдЬрдЯрд┐рд▓ рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдмрд╕ рд╡реАрдПрд▓рд╕реА рдкреНрд▓реЗрдпрд░ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рд▓реЗрдВ рдЬрд╣рд╛рдВ udp рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдЕрднреА рднреА рдХрд╛рдо рдХрд░рддреА рд╣реИредрдЗрд╕рд▓рд┐рдП, рдпрд╣рд╛рдБ рд╕реЗ VLC 2.2.6 рдЫрд╛рддрд╛ рдбрд╛рдЙрдирд▓реЛрдбрдХрд░реЗрдВ (рдЬреИрд╕реЗ рдХрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ) рдкреБрд░рд╛рдиреЗ (рдпрд╛рдиреА, рдирдпрд╛ VLC) рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВредрд╣рдо рдлрд┐рд░ рд╕реЗ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдХреНрд░реАрди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВредрдФрд░ рдпрд╣ рд╕рдм рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ H264 рдХреЛрдбреЗрдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рддреЛ рд╡реАрдПрд▓рд╕реА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреЛрдбреЗрдХ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ рдпрджрд┐ рдЙрд╕реЗ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рд╛ (рд╢реБрд░реВ рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЪрдпрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред рд▓реЗрдХрд┐рди рд╡реЗ рдПрдХ рдПрдХрд▓ рдЪреИрдирд▓ рдкрд░ рдПрдХ рдмрд╛рдЗрдЯ рд╕реНрдЯреНрд░реАрдо рдлреЗрдВрдХрддреЗ рд╣реИрдВ, рдФрд░ рджрд░реНрдЬрдиреЛрдВ рдХреЛрдбреЗрдХреНрд╕ рд╣реИрдВ рдЬреЛ рд╡реАрдПрд▓рд╕реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рд╡рд╣ рдХреИрд╕реЗ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕рдХреЛ рдЖрд╡реЗрджрди рдХрд░рдирд╛ рд╣реИ?рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХреЛрдбреЗрдХ рдХреЛ рдмрд▓ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдФрд░ рдЕрдм рд╣рдо "рд▓рд╛рдЗрд╡" рд╡реАрдбрд┐рдпреЛ рдХреЗ рдкреНрд░рд╕рд╛рд░рдг рдХрд╛ рдЖрдирдВрдж рд▓реЗрддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдпрд╣ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдпрд╣ рдЕрдкрдиреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реАрдбрд┐рдпреЛ рдкреНрд▓реЗрдпрд░ рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╕рд╛рдиреА рд╕реЗ рддрдп рд╣реЛ рдЧрдпрд╛ рд╣реИредрдФрд░ рдЖрдк рдмрд╕ рдЗрд╕ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: C:\Program Files\VideoLAN\VLC\vlc udp:
рдФрд░ рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдбрд┐рдХреЛрдб рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдореБрдбрд╝ рдЬрд╛рдПрдЧрд╛редрддреЛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рд░реЛрдмреЛрдЯ рдирд┐рдпрдВрддреНрд░рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ JAVA рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЗрд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рд╣рдо рдЗрд╕рдХреЗ рдмрд╣реБрдд рдЬрд▓реНрдж рдЕрдВрддрд┐рдо рднрд╛рдЧ рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред