Is there a way to make it stop?
I'm with this config:



sorry, i forgot to set my file to public, now you can play itkrzychol wrote:I could not play the sound you've attached, but I think I've experienced the same thing.
I did try couple of different transcoding profiles, and found out, that those noises were gone, only when I switched to profile called "Movies - CorePlayer".
That was the solution for me, so I didn't dig any deeper. I'm not sure if this was a problem with transcoder or WMS...
example of a problem file: http://www.mediafire.com/?cj3bain3y204nciEugene wrote:I think one example of a problem file and transcoding parameters, there would be very helpful.
Code: Select all
const
csInputParams = '-f rawvideo -vcodec rawvideo -pix_fmt yuv420p -s %dx%d -r %s -i "%s"%s -i "%s"';
clsidMpcAviSource = '{CEA8DEFF-0AF7-4DB9-9A38-FB3C3AEFC0DE}'; // MPC - Avi Source
clsidMpcAviSplitter = '{9736D831-9D6C-4E72-B6E7-560EF9181001}'; // MPC - Avi Splitter
clsidMpcFlvSource = '{C9ECE7B3-1D8E-41F5-9F24-B255DF16C087}'; // MPC - FLV Source (Gabest)
clsidMpcFlvSplitter = '{47E792CF-0BBE-4F7A-859C-194B0768650A}'; // MPC - FLV Splitter (Gabest)
clsidMpcMkvSource = '{0A68C3B5-9164-4A54-AFAF-995B2FF0E0D4}'; // MPC - Matroska Source
clsidMpcMkvSplitter = '{149D2E01-C32E-4939-80F6-C07B81015A7A}'; // MPC - Matroska Splitter
clsidMpcMp4Source = '{3CCC052E-BDEE-408A-BEA7-90914EF2964B}'; // MPC - MP4 Source
clsidMpcMp4Splitter = '{61F47056-E400-43D3-AF1E-AB7DFFD4C4AD}'; // MPC - MP4 Splitter
clsidMpcMpgSource = '{1365BE7A-C86A-473C-9A41-C0A6E82C9FA3}'; // MPC - Mpeg Source (Gabest)
clsidMpcMpgSplitter = '{DC257063-045F-4BE2-BD5B-E12279C464F0}'; // MPC - Mpeg Splitter (Gabest)
MEDIASUBTYPE_DOLBY_AC3 = '{E06D802C-DB46-11CF-B4D1-00805F6CBBEA}';
function GetFilterParams(const aFileFormat: string; const aFilterParams: Variant;
aSplitter: Boolean; var aFilterFileName, aFilterCLSID: string): Boolean;
var
FilterParams: Variant;
i: Integer;
begin
Result := True;
for i := 0 to Length(aFilterParams) - 1 do begin
FilterParams := aFilterParams[i];
if Pos(FilterParams[0], aFileFormat) > 0 then begin
aFilterFileName := FilterParams[1];
if aSplitter then
aFilterCLSID := FilterParams[2]
else
aFilterCLSID := FilterParams[3];
Exit
end
end;
Result := False
end;
function CheckResult(aResult: Integer; aRaiseException: Boolean = True): Boolean;
begin
Result := aResult = S_OK;
if not Result and aRaiseException then
RaiseException(Format('Error (code: %x) - %s', [aResult, SysErrorMessage(aResult)]))
end;
var
bCreateAudioPipe, bHaali, bSplitter, bSuccess: Boolean;
sAudioFormat, sCodecTag, sInputParams,
sAudioMediaMajorType, sAudioMediaSubType,
sFilterFileName, sFilterCLSID: string;
sVideoMediaMajorType, sVideoMediaSubType,
sReadVideoPipeName, sWriteVideoPipeName,
sReadAudioPipeName, sWriteAudioPipeName,
sTranscodingParams, sAudioPinName, sVideoPinName: string;
iAudioStreamNo, iAudioChannels1, iAudioChannels2, iAudioSampleRate, iAudioFormatTag,
iVideoWidth, iVideoHeight, iVideoCompression: Integer;
vCurrentPosition: Variant;
begin
TranscodingResult := False;
bSplitter := mpIsoItem or mpDvdItem or mpBdItem;
if bSplitter and not CheckResult(WmsDirectShowAddResourceSource('ResourceSource')) then
Exit;
if GetFilterParams(mpFileType,
[['avi', 'AviSplitter.ax', clsidMpcAviSplitter, clsidMpcAviSource],
['flv', 'FlvSplitter.ax', clsidMpcFlvSplitter, clsidMpcFlvSource],
['matroska', 'MatroskaSplitter.ax', clsidMpcMkvSplitter, clsidMpcMkvSource],
['mp4', 'MP4Splitter.ax', clsidMpcMp4Splitter, clsidMpcMp4Source],
['mpeg', 'MpegSplitter.ax', clsidMpcMpgSplitter, clsidMpcMpgSource]],
bSplitter, sFilterFileName, sFilterCLSID) then begin
bSuccess := CheckResult(WmsDirectShowLoadFilter('Filters\' + sFilterFileName, sFilterCLSID, 'Source'));
if bSuccess then begin
if bSplitter then
bSuccess := CheckResult(WmsDirectShowConnectPin('ResourceSource', 'Source', 'Output', 'Input'), False)
else
bSuccess := CheckResult(WmsDirectShowSetFileName('Source', InputFileName), False);
if not bSuccess then
WmsDirectShowRemoveFilter('Source')
end
end else
bSuccess := False;
bHaali := False;
if not bSuccess then begin
if bSplitter then
bSuccess := CheckResult(WmsDirectShowAddFilter('Haali Media Splitter (AR)', 'Source')) and
CheckResult(WmsDirectShowConnectPin('ResourceSource', 'Source', 'Output', 'Input'))
else
bSuccess := CheckResult(WmsDirectShowAddFilter('Haali Media Splitter', 'Source')) and
CheckResult(WmsDirectShowSetFileName('Source', InputFileName));
if bSuccess then bHaali := True
end;
iAudioStreamNo := mpAudioStreamNo;
if iAudioStreamNo = -1 then
iAudioStreamNo := 0;
if bHaali or SameText(mpFileType, 'flv') then begin
sVideoPinName := 'Video';
sAudioPinName := 'Audio';
WmsDirectShowSelectStream('Source', iAudioStreamNo, MEDIATYPE_Audio, WmsGetStreamID(stAudio, iAudioStreamNo));
end else begin
WmsDirectShowGetPinName('Source', PINDIR_OUTPUT, sVideoPinName, MEDIATYPE_Video, 0);
if not CheckResult(WmsDirectShowSelectStream('Source', iAudioStreamNo, MEDIATYPE_Audio, WmsGetStreamID(stAudio, iAudioStreamNo)), False) then
WmsDirectShowGetPinName('Source', PINDIR_OUTPUT, sAudioPinName, MEDIATYPE_Audio, 0)
else
WmsDirectShowGetPinName('Source', PINDIR_OUTPUT, sAudioPinName, MEDIATYPE_Audio, iAudioStreamNo);
end;
if not CheckResult(WmsDirectShowGetMediaType('Source', PINDIR_OUTPUT, sAudioPinName,
sAudioMediaMajorType, sAudioMediaSubType, iAudioChannels1, iAudioSampleRate, iAudioFormatTag)) then
Exit;
if sAudioMediaSubType = MEDIASUBTYPE_WAVE_DTS then
sAudioFormat := 'dts'
else if sAudioMediaSubType = MEDIASUBTYPE_WAVE_DOLBY_AC3 then
sAudioFormat := 'ac3'
else if sAudioMediaSubType = MEDIASUBTYPE_DOLBY_AC3 then
sAudioFormat := 'truehd'
else if sAudioMediaSubType = MEDIASUBTYPE_AAC then
sAudioFormat := 'aac'
else if sAudioMediaSubType = MEDIASUBTYPE_MP3 then
sAudioFormat := 'mp3'
else
sAudioFormat := '';
if mpTimeStart <> '' then begin
vCurrentPosition := WmsTimeConvert(mpTimeStart) * 10000000;
if not CheckResult(WmsDirectShowSetPosition('Source', TIME_FORMAT_MEDIA_TIME, vCurrentPosition)) then
Exit;
end;
// if not CheckResult(WmsDirectShowAddFilter('CyberLink H.264/AVC Decoder (TechnoTrend)', 'Video Decoder')) then
if not CheckResult(WmsDirectShowAddFilter('CoreAVC Video Decoder', 'Video Decoder'), False) and
not CheckResult(WmsDirectShowAddFilter('Microsoft DTV-DVD Video Decoder', 'Video Decoder')) then
Exit;
if not CheckResult(WmsDirectShowConnectPin('Source', 'Video Decoder', sVideoPinName, '')) then
Exit;
// WmsDirectShowProperties('Video Decoder');
bCreateAudioPipe := True;
if MatchText(sAudioFormat, ['aac', 'truehd']) then begin
bCreateAudioPipe := False;
if CheckResult(WmsDirectShowAddFilter('ffdshow Audio Decoder', 'Audio Decoder'), False) then begin
if CheckResult(WmsDirectShowConnectPin('Source', 'Audio Decoder', sAudioPinName, ''), False) then
bCreateAudioPipe := True
else
WmsDirectShowRemoveFilter('Audio Decoder')
end
// WmsDirectShowProperties('Audio Decoder');
end;
if WmsCreateDualPipe(sReadVideoPipeName, sWriteVideoPipeName, 10000000) and
(not bCreateAudioPipe or WmsCreateDualPipe(sReadAudioPipeName, sWriteAudioPipeName, 10000000)) then begin
if not CheckResult(WmsDirectShowAddDump(sWriteVideoPipeName, 'DumpVideo')) then
Exit;
if not CheckResult(WmsDirectShowConnectPin('Video Decoder', 'DumpVideo', '', '', MEDIATYPE_Video, MEDIASUBTYPE_I420)) then
Exit;
if bCreateAudioPipe then begin
if not CheckResult(WmsDirectShowAddDump(sWriteAudioPipeName, 'DumpAudio')) then
Exit;
if MatchText(sAudioFormat, ['aac', 'truehd']) then begin
if not CheckResult(WmsDirectShowConnectPin('Audio Decoder', 'DumpAudio', 'Out', '',
MEDIATYPE_Audio, KSDATAFORMAT_SUBTYPE_PCM)) then
Exit;
if not CheckResult(WmsDirectShowGetMediaType('Audio Decoder', PINDIR_OUTPUT, 'Out',
sAudioMediaMajorType, sAudioMediaSubType, iAudioChannels2,
iAudioSampleRate, iAudioFormatTag)) then
Exit;
sAudioFormat := Format(' -f s16le -ar %d -ac %d', [iAudioSampleRate, iAudioChannels2])
end else begin
if not CheckResult(WmsDirectShowConnectPin('Source', 'DumpAudio', sAudioPinName, '')) then
Exit;
if sAudioFormat <> '' then
sAudioFormat := ' -f ' + sAudioFormat;
end
end else begin
sReadAudioPipeName := InputFileName;
sAudioFormat := ''
end;
if not CheckResult(WmsDirectShowGetMediaType('DumpVideo', PINDIR_INPUT, '',
sVideoMediaMajorType, sVideoMediaSubType, iVideoWidth, iVideoHeight, iVideoCompression)) then
Exit;
WmsDirectShowGetFrameRate('DumpVideo', PINDIR_INPUT, '', mpFrameRate);
if CheckResult(WmsDirectShowPlay) then begin
sInputParams := Format(csInputParams, [iVideoWidth, iVideoHeight,
ReplaceStr(FormatFloat('0.###', mpFrameRate), ',', '.'),
sReadVideoPipeName, sAudioFormat, sReadAudioPipeName]);
if mpTimeStart <> '' then
sInputParams := '-ts ' + mpTimeStart + ' -muxpreload ' + IntToStr(WmsTimeConvert(mpTimeStart)) + ' ' + sInputParams;
sTranscodingParams := sInputParams + WmsTranscodingVideoParams(0, 0, 0, 0, True, False) +
' "' + OutputFileName + '"';
// ShowMessage(sTranscodingParams);
TranscodingResult := WmsTranscodingExecute('WMSMPEG', sTranscodingParams)
end
end
end.