Записать аудио данные тишины в файл ffmpeg C++

Я хочу записать данные тишины / обнуленной аудиозаписи в mov файл медиа-контейнера внутри аудиоданных. Мои аудиоданные - это закодированные в G711 линейные данные PCM-mulaw с одним каналом. В настоящее время мой код выглядит так:

AVFrame* pSilentData = av_frame_alloc();
memset(&pSilentData->data[0], 0, iDataSize);
pkt.data = (uint8_t*) pSilentData;
pkt.size = iDataSize;

// ...

av_freep(&pSilentData->data[0]);
av_frame_free(&pSilentData);

Но это звучит как точка, а не тишина. В чем проблема?

1 ответ

Решение

Для аудио по закону µ нулевое значение представляется как 0xffтак что поменяйте:

memset(&pSilentData->data[0], 0, iDataSize);

чтобы:

memset(&pSilentData->data[0], 0xff, iDataSize);
Другие вопросы по тегам