Microsoft MPEG-2 Video Encoder
[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Tangkapan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine dan Audio/Video Capture di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]
Filter Microsoft MPEG-2 Video Encoder mengodekan video MPEG-2 dan MPEG-1.
Untuk mengodekan dan multipleks aliran audio/video, gunakan filter Microsoft MPEG-2 Encoder , yang merangkum fungsi filter ini dan filter Microsoft MPEG-2 Audio Encoder .
Catatan
Filter ini tidak didukung pada platform berbasis IA-64.
Informasi Filter
Antarmuka Filter
IBaseFilter
ICodecAPI
IEncoderAPI
IMediaSeeking
IVideoEncoder
Jenis Media Pin Input
MEDIATYPE_Video, MEDIASUBTYPE_I420
MEDIATYPE_Video, MEDIASUBTYPE_IYUV
MEDIATYPE_Video, MEDIASUBTYPE_RGB24
MEDIATYPE_Video, MEDIASUBTYPE_UYVY
MEDIATYPE_Video, MEDIASUBTYPE_YUY2
MEDIATYPE_Video, MEDIASUBTYPE_YV12
Antarmuka Pin Input
IMemInputPin
Ipin
IQualityControl
Tipe Media Pin Output
MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_VIDEO
MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_PROGRAM
MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_TRANSPORT
MEDIATYPE_Video, MEDIASUBTYPE_MPEG2_VIDEO
Antarmuka Pin Output
IMediaSeeking
Ipin
IQualityControl
Filter CLSID
CLSID_CMPEG2EncoderVideoDS (dideklarasikan dalam wmcodecdsp.h)
Eksekusi
msmpeg2enc.dll
MERIT_DO_NOT_USE
CLSID_LegacyAmFilterCategory
Keterangan
Encoder Video MPEG-2 dapat menghasilkan jenis output berikut:
- Aliran dasar video
- Video dalam aliran program MPEG-2
- Video dalam aliran transportasi MPEG-2
Ini mendukung profil dan tingkat MPEG-2 berikut:
Profil | Tingkat | Keterangan |
---|---|---|
Profil Sederhana | Utama | |
Profil Utama | Rendah, Utama, Tinggi, Tinggi-1440 | |
Profil Tinggi | Utama, Tinggi, Tinggi-1440 | Tidak ada skalabilitas atau dukungan 4:2:2/4:4:4 (hanya 4:2:0) |
4:2:2 Profil | Utama, Tinggi | Tidak ada skalabilitas atau dukungan 4:2:2 (hanya 4:2:0) |
Properti Codec
Filter mendukung properti berikut melalui ICodecAPI.
Properti | Default | Nilai yang Didukung |
---|---|---|
AVEncCodecType | Video MPEG-2 |
CODECAPI_GUID_AVEncMPEG1Video CODECAPI_GUID_AVEncMPEG2Video |
AVEncCommonBufferInLevel | bit 12222464 | |
AVEncCommonBufferOutLevel | bit 12222464 | |
AVEncCommonBufferSize | bit 12222464 | |
AVEncCommonFormatConstraint | Tidak disebutkan |
CODECAPI_GUID_AVEncCommonFormatUnSpecified (Tanpa batasan format) CODECAPI_GUID_AVEncCommonFormatDVD_V (DVD-Video) CODECAPI_GUID_AVEncCommonFormatVCD (CD Video) |
AVEncCommonMaxBitRate | 9800000 (9,8 Mbit/detik) | |
AVEncCommonMeanBitRate | 7000000 (7,0 Mbit/detik) | |
AVEncCommonMinBitRate | 128 | |
AVEncCommonMultipassMode | 1 | 1 |
AVEncCommonQuality | 100 | 1 — 100 |
AVEncCommonQualityVsSpeed | 75 | 0 — 100 |
AVEncCommonRateControlMode | CBR |
eAVEncCommonRateControlMode_CBR eAVEncCommonRateControlMode_PeakConstrainedVBR eAVEncCommonRateControlMode_Quality |
AVEncInputVideoSystem | Tidak disebutkan | eAVEncInputVideoSystem_Unspecified eAVEncInputVideoSystem_PAL eAVEncInputVideoSystem_NTSC |
AVEncMPVDefaultBPictureCount | 2 | 0 — 2 |
AVEncMPVFrameFieldMode | Mode bingkai | |
AVEncMPVGenerateHeaderSeqDispExt | TRUE | |
AVEncMPVGenerateHeaderSeqExt | TRUE | |
AVEncMPVGOPBuka | FALSE | |
AVEncMPVGOPSInSeq | 1 | 0 — 1 |
AVEncMPVGOPSize | 18 bingkai (36 bidang) untuk NTSC; 15 bingkai (30 bidang) jika tidak. | 1 — 30; lihat Keterangan |
AVEncMPVIntraDCPrecision | 9 | 8 — 10 |
AVEncMPVLevel | Tinggi | |
AVEncMPVProfile | Utama | |
AVEncVideoDefaultUpperFieldDominant | TRUE | |
AVEncVideoForceSourceScanType | Interlaced |
eAVEncVideoSourceScan_Interlaced eAVEncVideoSourceScan_Progressive |
AVEncVideoInputChromaResolution | 4:2:0 |
eAVEncVideoChromaResolution_420 (4:2:0) eAVEncVideoChromaResolution_SameAsSource |
AVEncVideoInputChromaSubsampling | Sama seperti sumber | |
AVEncVideoInputColorNominalRange | Sama seperti sumber | |
AVEncVideoInputColorPrimaries | Sama seperti sumber | |
AVEncVideoInputColorTransferFunction | Sama seperti sumber | |
AVEncVideoInputColorTransferMatrix | Sama seperti sumber | |
AVEncVideoMaxKeyframeDistance | AVEncMPVGOPSize - 1 | 0 atau AVEncMPVGOPSize - 1 |
AVEncVideoNoOfFieldsToEncode | 0 | |
AVEncVideoOutputChromaResolution | 4:2:0 |
eAVEncVideoChromaResolution_420 (4:2:0) eAVEncVideoChromaResolution_SameAsSource |
AVEncVideoOutputFrameRate | Harus sama dengan kecepatan bingkai input. | |
AVEncVideoOutputScanType | Sama seperti input | eAVEncVideoOutputScan_SameAsInput |
AVEncVideoPixelAspectRatio | 1:1 |
Disarankan untuk mengatur properti dalam urutan berikut:
Atur properti yang tersisa dalam urutan apa pun. (Namun, lihat Struktur GOP.)
Dimungkinkan untuk mengatur properti saat grafik filter sedang berjalan. Ada penundaan setidaknya satu GOP sebelum pengaturan baru berlaku.
Operasi Encoder
Saat mengodekan video MPEG-1, encoder secara otomatis mengatur kode constrained_parameters_flag 1-bit di header urutan jika semua batasan terpenuhi.
Jika diperlukan, encoder membulatkan dimensi video input sehingga dimensi video output cocok dengan persyaratan MPEG. Untuk video progresif, dimensi output dibulatkan ke atas hingga kelipatan 16 dalam lebar dan tinggi. Untuk video interlaced, lebar dibulatkan ke atas hingga kelipatan 16, dan tinggi dibulatkan ke atas hingga kelipatan 32. Operasi round-up ini menggunakan padding sesuai kebutuhan.
Jika video diselingi, encoder melakukan deteksi telesin otomatis (tarik-turun 3:2). Video input dapat berisi pasangan gambar bidang, selain bingkai yang saling terkait.
Format internal encoder adalah 4:2:0 IYUV (identik dengan I420). Ini dapat melakukan konversi warna dari format video YUY2, YV12, UYVY, dan RGB-24.
Untuk membatasi bitstream ke format target (DVD atau VCD), atur properti AVEncCommonFormatConstraint . Jika properti ini memiliki nilai selain GUID_AVEncCommonFormatUnSpecified, encoder membatasi sintaks MPEG ke yang diizinkan oleh format target.
Untuk pengodean langsung, atur properti AVEncCommonQualityVsSpeed ke nol. Hal ini menyebabkan encoder mengoptimalkan kecepatan.
Mode Pengodean
Encoder mendukung beberapa mode pengodean:
- Laju bit konstanta satu kali (CBR).
- Laju bit variabel berbasis kualitas satu pass (VBR), menggunakan ukuran langkah kuantizer konstan. Dalam mode ini, encoder mencoba memenuhi tingkat kualitas target, hingga laju bit maksimum.
- VBR yang dibatasi puncak satu kali. Dalam mode ini, encoder mencoba mencapai laju bit rata-rata target dalam batas internal tertentu.
Untuk mengonfigurasi mode pengodean, atur properti berikut:
Mode | Properti |
---|---|
CBR |
AVEncCommonRateControlMode = eAVEncCommonRateControlMode_CBR AVEncCommonQualityVsSpeed AVEncCommonMeanBitRate |
VBR berbasis kualitas |
AVEncCommonRateControlMode = eAVEncCommonRateControlMode_Quality AVEncCommonQuality AVEncCommonMaxBitRate Catatan: Dalam mode ini, properti AVEncCommonMeanBitRate dan AVEncCommonMinBitRate tidak digunakan. Laju bit minimum diasumsikan nol. |
VBR yang dibatasi puncak |
AVEncCommonRateControlMode = eAVEncCommonRateControlMode_PeakConstrainedVBR AVEncCommonMultipassMode = 1 AVEncCommonMinBitRate AVEncCommonMaxBitRate AVEncCommonMeanBitRate |
Catatan
VBR dua-pass tidak didukung.
Rasio Aspek
Rasio aspek tampilan dan rasio aspek piksel (PAR) terkait dengan rumus berikut:
- Rasio aspek tampilan = × PAR (lebar gambar/tinggi gambar)
Encoder menggunakan rumus ini untuk menghitung nilai pel_aspect_ratio untuk bitstream MPEG-1 atau aspect_ratio_information untuk bitstream MPEG-2. (Lihat ISO/IEC 11172 dan ISO/IEC 138181-2, masing-masing.)
Encoder mencoba pengaturan berikut, secara berurutan:
- Jika aplikasi mengatur properti AVEncVideoPixelAspectRatio kapan saja sebelum grafik filter berjalan, properti ini digunakan untuk PAR.
- Jika tidak, jika anggota dwPictAspectRatioX dan dwPictAspectRatioY dari struktur VIDEOINFOHEADER2 bukan nol, anggota ini digunakan untuk rasio aspek tampilan, dan PAR dihitung dari rasio aspek tampilan.
- Jika tidak ada nilai-nilai ini, PAR diasumsikan 1,0, dan rasio aspek tampilan dihitung sesuai.
Dalam mode pengodean langsung (AVEncCommonQualityVsSpeed sama dengan nol), rasio aspek tampilan harus 4:3 atau 16:9, dengan nilai default 4:3. Jika rasio aspek tampilan komputasi bukan 4:3 atau 16:9, encoder menggunakan nilai 4:3.
Struktur GOP
Untuk menentukan struktur grup gambar (GOP), atur properti berikut secara berurutan:
Berdasarkan pengaturan ini, encoder menghasilkan salah satu struktur GOP berikut:
AVEncVideoMaxKeyframeDistance | AVEncMPVDefaultBPictureCount | Struktur GOP |
---|---|---|
0 | 0 | IIII... |
AVEncMPVGOPSize - 1 | 0 | IPPP... |
AVEncMPVGOPSize - 1 | 1 | IBPBP... |
AVEncMPVGOPSize - 1 | 2 | IBBPBBP... |
Struktur GOP default adalah IBBPBBP... dengan ukuran GOP 15 bingkai.
Jika aplikasi membatasi format target ke DVD (melalui properti AVEncCommonFormatConstraint ) dan mengatur properti AVEncInputVideoSystem ke NTSC atau PAL, encoder mendukung ukuran GOP berikut:
Sistem Video | Ukuran GOP yang Valid | Ukuran GOP Default |
---|---|---|
NTSC | 1-18 | 18 (36 bidang) |
PAL | 1-15 | 15 (30 bidang) |
Daftar Perubahan Properti Codec
Mengatur nilai satu properti codec dapat mengubah rentang properti lain yang valid. (Misalnya, membatasi format target membatasi laju bit rata-rata.) Setiap kali aplikasi menetapkan properti, encoder memeriksa apakah properti lain sekarang berada di luar rentang yang valid. Jika demikian, encoder mengatur ulang properti tersebut ke nilai default barunya. Untuk menerima pemberitahuan ketika hal ini terjadi, lakukan hal berikut:
- Panggil ICodecAPI::RegisterForEvent dengan nilai CODECAPI_CHANGELISTS.
- Gunakan antarmuka IMediaEventEx untuk memantau peristiwa dari grafik filter.
- Jika rentang atau nilai default properti berubah, encoder mengirimkan peristiwa EC_CODECAPI_EVENT dengan daftar properti yang diubah.
Dukungan IEncoderAPI
Untuk kompatibilitas mundur, filter mendukung properti berikut melalui antarmuka IEncoderAPI :
Properti | Deskripsi |
---|---|
ENCAPIPARAM_BITRATE | Setara dengan AVEncCommonMeanBitRate. |
ENCAPIPARAM_PEAK_BITRATE | Setara dengan AVEncCommonMaxBitRate. |
ENCAPIPARAM_BITRATE_MODE | Setara dengan AVEncCommonRateControlMode. |
Saat mengatur properti ENCAPIPARAM_BITRATE_MODE , nilai dipetakan sebagai berikut:
ENCAPIPARAM_BITRATE_MODE | AVEncCommonRateControlMode |
---|---|
ConstantBitRate | eAVEncCommonRateControlMode_CBR |
VariableBitRateAverage | Lihat Catatan. |
VariableBitRatePeak | eAVEncCommonRateControlMode_PeakConstrainedVBR |
Catatan
Saat ini, encoder video MPEG-2 tidak mendukung mode pengodean VariableBitRateAverage . Jika Anda mengatur nilai ini, encoder default ke pengodean CBR (eAVEncCommonRateControlMode_CBR).
Saat mendapatkan properti ENCAPIPARAM_BITRATE_MODE , nilai dipetakan sebagai berikut:
AVEncCommonRateControlMode | ENCAPIPARAM_BITRATE_MODE |
---|---|
eAVEncCommonRateControlMode_CBR | ConstantBitRate |
eAVEncCommonRateControlMode_Quality | VariableBitRatePeak |
eAVEncCommonRateControlMode_PeakConstrainedVBR | VariableBitRatePeak |
Batasan
Saat ini encoder tidak mendukung salah satu fitur berikut:
- Pembuatan paket aliran dasar (PES) yang dikemas.
- Konversi kecepatan bingkai. Aliran input harus memiliki kecepatan bingkai yang valid untuk bitstream MPEG-2.
- Ekstensi kecepatan bingkai untuk MPEG-2 (frame_rate_extension_n, frame_rate_extension_d).
- Posisi buffer masuk/keluar (VBV) untuk klip.
- Penyisipan data baris-21 (Informasi Teks Tertutup) ke dalam aliran dasar video.
- Mengatur bidang time_code 25-bit di header GOP untuk MPEG-2.
- Filter denoise.
- Manajemen hak digital (DRM).
Encoder memperkenalkan latensi pengodean setidaknya satu GOP.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows Vista Home Premium, Windows Vista Ultimate, Windows 7 Home Premium, Windows 7 Professional, Windows 7 Enterprise, Windows 7 Ultimate [hanya aplikasi desktop] |
Server minimum yang didukung |
Tidak ada yang didukung |
Header |
|
Lihat juga