MediaFoundation: TimeStamp первого кадра неправильно устанавливается на 0. Вместо этого ему присваивается значение 0,333C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 MediaFoundation: TimeStamp первого кадра неправильно устанавливается на 0. Вместо этого ему присваивается значение 0,333

Сообщение Anonymous »

Я пытаюсь прочитать два кадра, каждый из которых отдельно хранится в двоичных файлах с именамиframe1.bin иframe2.bin, и создать видеофайл MP4 с именем sample.mp4. Полный исходный код доступен здесь:
https://github.com/eswar-2001/MFWriter/ ... Writer.cpp
Вот что я делаю. :
Я считываю кадр, связываю его с соответствующей временной меткой и записываю в видеофайл.

Код: Выделить всё

CComPtr mediaBuffer(createMediaBuffer(input));

// Create a media sample and add the buffer to the sample.
CComPtr sample;
MFWRITER_RETURN_ON_ERROR(throwIf(MFCreateSample(&sample)));
MFWRITER_RETURN_ON_ERROR(throwIf(sample->AddBuffer(mediaBuffer)));

// Set the time stamp and the duration.
MFWRITER_RETURN_ON_ERROR(throwIf(sample->SetSampleTime(_frameStart)));
MFWRITER_RETURN_ON_ERROR(throwIf(sample->SetSampleDuration(_frameDuration)));

// Send the sample to the Sink Writer.
MFWRITER_RETURN_ON_ERROR(throwIf(_sinkWriter->WriteSample(_videoStreamIndex, sample)));

// Advance the starting position for the next frame
_frameStart += _frameDuration;
Проблема:

Отметка времени начинается с 0,333 вместо 0, что, по-видимому, соответствует значению длительности кадра. Я напечатал значение _frameStart до и после связывания его с образцом с помощью SetSampleTime, и в обоих случаях оно напечатало 0, как и ожидалось. Однако в созданном файле MP4 временная метка первого кадра равна 0,333 вместо 0. Я не могу определить причину этой проблемы.

Подробнее здесь: https://stackoverflow.com/questions/791 ... t-to-0-ins
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»