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

MERIT_DO_NOT_USE

Kategori Filter

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:

  1. AVEncCommonFormatConstraint
  2. AVEncCodecType
  3. AVEncMPVProfile
  4. AVEncMPVLevel
  5. AVEncInputVideoSystem

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:

  1. Jika aplikasi mengatur properti AVEncVideoPixelAspectRatio kapan saja sebelum grafik filter berjalan, properti ini digunakan untuk PAR.
  2. 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.
  3. 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:

  1. AVEncMPVGOPSize
  2. AVEncVideoMaxKeyframeDistance
  3. AVEncMPVDefaultBPictureCount

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:

  1. Panggil ICodecAPI::RegisterForEvent dengan nilai CODECAPI_CHANGELISTS.
  2. Gunakan antarmuka IMediaEventEx untuk memantau peristiwa dari grafik filter.
  3. 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
Wmcodecdsp.h

Lihat juga

Filter DirectShow

Jenis Media Demultiplexer MPEG-2