Strange noise in silent scenes

Post Reply
marcosdpr
Posts: 6
Joined: Mon Oct 10, 2011 12:20 am

Strange noise in silent scenes

Post by marcosdpr »

Please hear the "noise" here: http://soundcloud.com/marcosdelponterocha/memo-230

Is there a way to make it stop?

I'm with this config:

Image
Image
Image
krzychol
Posts: 9
Joined: Tue Sep 14, 2010 10:41 pm

Re: Strange noise in silent scenes

Post by krzychol »

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...
marcosdpr
Posts: 6
Joined: Mon Oct 10, 2011 12:20 am

Re: Strange noise in silent scenes

Post by marcosdpr »

krzychol 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...
sorry, i forgot to set my file to public, now you can play it :lol:

i'll try to switch the profile and see what happens, thanks.
marcosdpr
Posts: 6
Joined: Mon Oct 10, 2011 12:20 am

Re: Strange noise in silent scenes

Post by marcosdpr »

Ok, changing from Movies - CoreAVC to Movies CorePlayer worked for the noise, but now i can't play most of mine HD files :cry:
krzychol
Posts: 9
Joined: Tue Sep 14, 2010 10:41 pm

Re: Strange noise in silent scenes

Post by krzychol »

Yeap - this is exactly the kind of noise, I had experienced before.
And I know what you're saying about playing HD files - I was thinking about buying CoreAVC to utilize its multi-threading capabilities, but dropped that idea because of that annoying noise when using profile other than CorePlayer (plus I can play 720p files without problem on CorePlayer profile, so that's not that big of an issue for me)

Anyway - back when I was trying to figure out what's causing that noise, I did a test in which I pre-transcoded couple of minutes of a movie using different profiles, saved that pre-transcoded files on a USB-stick and played them directly in the TV.
Now - I don't remember, if the noise was there when playing from USB (can try again later this week), but if it was, I guess this would mean that the problem is somewhere in WMS, its transcoders, or the device settings in WMS (I also own Philips TV)

If you could try and do the same test I did (so that we rule out the TV-set itself) we could then nag Eugene to figure out what is actually causing the noise :)
Eugene
Posts: 2940
Joined: Tue Nov 17, 2009 8:05 pm

Re: Strange noise in silent scenes

Post by Eugene »

I think one example of a problem file and transcoding parameters, there would be very helpful.
marcosdpr
Posts: 6
Joined: Mon Oct 10, 2011 12:20 am

Re: Strange noise in silent scenes

Post by marcosdpr »

Eugene wrote:I think one example of a problem file and transcoding parameters, there would be very helpful.
example of a problem file: http://www.mediafire.com/?cj3bain3y204nci

not sure about transcoding parameters. as it happen with Movies - CoreAVC, i've copied the transcoding parameters i found there.
if it's not what you want, tell me how to get them.

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.
Eugene
Posts: 2940
Joined: Tue Nov 17, 2009 8:05 pm

Re: Strange noise in silent scenes

Post by Eugene »

Thanks, I made "Test transcoding" with "Movies - CoreAVC" and I have no problems with sound. Probably the problem in "ffdshow Audio Decoder" settings.
Post Reply