Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wird vom Aktivierungsobjekt der Transcodierungssenke implementiert.
Das Aktivierungsobjekt der Transcodierungssenke kann verwendet werden, um eine der folgenden Dateisenken zu erstellen:
- 3GP-Dateisenke
- MP3-Dateisenke
- MP4-Dateisenke
Vererbung
Die IMFTranscodeSinkInfoProvider-Schnittstelle erbt von der IUnknown-Schnittstelle . IMFTranscodeSinkInfoProvider verfügt auch über folgende Membertypen:
Methoden
Die IMFTranscodeSinkInfoProvider-Schnittstelle verfügt über diese Methoden.
|
IMFTranscodeSinkInfoProvider::GetSinkInfo Ruft die Medientypen für die Audio- und Videostreams ab, die im Transcodierungsprofil angegeben sind. |
|
IMFTranscodeSinkInfoProvider::SetOutputByteStream Legt einen Ausgabebytestream für die Transcodierungsmediensenke fest. |
|
IMFTranscodeSinkInfoProvider::SetOutputFile Legt den Namen der codierten Ausgabedatei fest. |
|
IMFTranscodeSinkInfoProvider::SetProfile Legt das Transcodierungsprofil für das Aktivierungsobjekt der Transcodierungssenke fest. |
Hinweise
Führen Sie die folgenden Schritte aus, um diese Schnittstelle zu verwenden:
- Rufen Sie MFCreateTranscodeSinkActivate auf, um das Transcode-Senkenaktivierungsobjekt zu erstellen.
- Fragen Sie das Aktivierungsobjekt für die IMFTranscodeSinkInfoProvider-Schnittstelle ab.
- Rufen Sie MFCreateTranscodeProfile auf, um ein Transcodierungsprofil zu erstellen.
- Legen Sie das attribut MF_TRANSCODE_CONTAINERTYPE für das Transcodierungsprofil fest. Das Attribut muss über einen der folgenden Werte verfügen:
- MFTranscodeContainerType_3GP
- MFTranscodeContainerType_MP3
- MFTranscodeContainerType_MPEG4
- Rufen Sie IMFTranscodeProfile::SetVideoAttributes und IMFTranscodeProfile::SetAudioAttributes auf, um die Video- und Audioformate anzugeben.
- Rufen Sie IMFTranscodeSinkInfoProvider::SetProfile auf, um das Transcodierungsprofil festzulegen.
- Rufen Sie eine der folgenden Methoden (aber nicht beide) auf, um die Ausgabedatei anzugeben:
- Rufen Sie IMFActivate::ActivateObject für das Aktivierungsobjekt auf, um die Mediensenke zu erstellen.
Beispiele
// Creates an activation object for the generic transcode sink.
HRESULT CreateTranscodeSinkActivate(
REFGUID guidContainerType,
IMFAttributes *pVideoAttributes,
IMFAttributes *pAudioAttributes,
IMFActivate *pByteStreamActivate,
IMFActivate **ppSinkActivate
)
{
IMFActivate* pSinkActivate = NULL;
IMFTranscodeSinkInfoProvider* pSinkInfoProvider = NULL;
IMFTranscodeProfile* pProfile = NULL;
IMFAttributes* pContainerAttributes = NULL;
HRESULT hr = MFCreateAttributes(&pContainerAttributes, 1);
if (FAILED(hr))
{
goto done;
}
// Create the transcode profile.
hr = MFCreateTranscodeProfile(&pProfile);
if (FAILED(hr))
{
goto done;
}
// Set the profile attributes.
hr = pContainerAttributes->SetGUID(MF_TRANSCODE_CONTAINERTYPE, guidContainerType);
if (FAILED(hr))
{
goto done;
}
hr = pProfile->SetContainerAttributes(pContainerAttributes);
if (FAILED(hr))
{
goto done;
}
if (pVideoAttributes)
{
hr = pProfile->SetVideoAttributes(pVideoAttributes);
if (FAILED(hr))
{
goto done;
}
}
if (pAudioAttributes)
{
hr = pProfile->SetAudioAttributes(pAudioAttributes);
if (FAILED(hr))
{
goto done;
}
}
// Create the transcode sink activation object.
hr = MFCreateTranscodeSinkActivate(&pSinkActivate);
if (FAILED(hr))
{
goto done;
}
hr = pSinkActivate->QueryInterface(IID_PPV_ARGS(&pSinkInfoProvider));
if (FAILED(hr))
{
goto done;
}
// Set the output byte stream.
hr = pSinkInfoProvider->SetOutputByteStream(pByteStreamActivate);
if (FAILED(hr))
{
goto done;
}
// Set the transcode profile.
hr = pSinkInfoProvider->SetProfile(pProfile);
if (FAILED(hr))
{
goto done;
}
// Return the activation object to the caller.
*ppSinkActivate = pSinkActivate;
(*ppSinkActivate)->AddRef();
done:
SafeRelease(&pProfile);
SafeRelease(&pSinkInfoProvider);
SafeRelease(&pSinkActivate);
SafeRelease(&pContainerAttributes);
return hr;
}
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) | Windows 7 [nur Desktop-Apps] |
| Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [nur Desktop-Apps] |
| Zielplattform | Windows |
| Kopfzeile | mfidl.h |