2016-12-30 4 views
-1

동일한 이벤트, 길이가 다른 두 개의 녹음 시간이 서로 다른 시간에 시작되었습니다. 나는 그것들을 동기화하고 싶다. 시간 오프셋은 알려져있다. 다음을 달성하고 싶습니다.C# - WAV 파일 트리밍 및 무음 추가

  1. 두 번째 시간을 시간 오프셋만큼 정렬하십시오.
  2. 첫 번째 길이와 일치하도록 둘째 줄기로 자르십시오.
  3. 트리밍 할 시간이 없으면 첫 번째 길이와 일치하도록 무음을 추가하십시오.

    오디오를 다듬는 방법을 발견했지만 침묵을 추가하는 해결책을 찾지 못했습니다. NAudio, ffmpeg 또는 Aurio로이 작업을 수행 할 수있는 방법이 있습니까?
+0

이것은 ffmpeg로 수행 할 수 있습니다. 지속 시간과 오프셋/트림/묵음이 필요한 부분에 대한 세부 정보를 입력하면 명령을 작성합니다. – Mulvya

답변

0

죄송합니다. 응답하지 않으 셨지만 ffmpeg를 사용하여 문제를 해결했습니다. 다음은 내가 한 일입니다.

ffmpeg -f lavfi -i aevalsrc=0:d=8.375 -i inputfile.wav -filter_complex "[0:0] [1:0] concat=n=2:v=0:a=1" -ss 0 -to 63.787 outputfile.wav

-i aevalsrc=0:d=8.375은 (d) 8.375 초 동안 무음을 생성합니다.
-filter_complex "[0:0] [1:0] concat=n=2:v=0:a=1은 묵음과 입력 파일을 병합합니다. - Concatenation
-ss 0 -to 63.787 출력을 자릅니다 (첫 번째 파일의 길이부터 63.787까지 입력이 짧으면 입력 파일 길이가 길어집니다) - Seeking

오프셋 값이 음수이면

ffmpeg -i inputfile.wav -ss 22.316 -t 54.213 outputfile.wav

따라서 출력 파일은 54.213 기간 동안 22.316 초부터 시작하는 입력 파일입니다.

NReco.VideoConverter를 ffmpeg 래퍼로 사용했습니다.