У меня есть видео yuv (скажем, stream.yuv) и соответствующий аудиофайл (stream.wav). Теперь у меня есть графический интерфейс, который отображает необработанное видео кадр за кадром. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что мне нужно воспроизводить звук, связанный с каждым видеокадром.
Я пробовал следующее для начала, но когда я выполняю это, звук прерывается
%% Dividing the audio into per-second samples
nframes = 720;
[audioFile, audioSampleFreq] = audioread('stream.wav');
numSamples = length(audioFile);
audioLength = round(numSamples / audioSampleFreq);
for frame = 1:audioLength
start = (frame-1)*audioSampleFreq+1;
stop = frame*audioSampleFreq;
[start stop]
audioFrame1 = audioFile(start:stop,:);
sound(audioFrame1,audioSampleFreq);
end
Чтобы разделить звук на сэмплы на видеокадр,
audioFileName = 'stream.wav';
nframes = 720;
framerate = 25;
[audioFile, audioSampleFreq] = audioread(audioFileName);
audioFRate = round(audioSampleFreq/framerate);
%% Total number of audio samples
numSamples = length(audioFile);
%% number of audio frames
numFrames = floor(numSamples/audioFRate);
for frame = 1:numFrames
start = (frame-1)*audioFRate+1;
stop = frame*audioFRate;
[start stop]
audioFrame1 = audioFile(start:stop,:);
sound(audioFrame1,audioSampleFreq);
end
Любые мысли о том, как синхронизировать покадровый рендеринг кадров YUV и посекундных аудиосэмплов? Спасибо!