FFMPEG API Dois streams Mono frame dados para um frame stereo de canal duplo [closed]

1

Estou tentando intercalar dois dados de quadros mono em um único quadro estéreo. Os ponteiros de quadro mono são in_frame1 e in_frame2 e o ponteiro de quadro de saída estéreo é out_frame. O formato de amostra para os quadros em e o quadro de saída é AV_SAMPLE_FMT_S16.

O número de amostras em cada quadro (dentro e fora) (nb_samples) é 160 e o tamanho de linhas [0] para os in_frames são 320 cada e o tamanho de linhas [0] para o quadro de saída é de 640.

byte*ptr = out_frame->data[0];
byte *ptr1 = in_frame1->data[0];
byte*ptr2 = in_frame2->data[0];

for(int k = 0; k < out_frame->nb_samples; k++)
{
//Take two bytes from the first mono frame
*ptr++ = *ptr1++;
*ptr++ = *ptr1++;
//Take next two bytes from the second mono frame
*ptr++ = *ptr2++;
*ptr++ = *ptr2++;
}

O áudio de saída é, no entanto, o mesmo para os dois canais (o primeiro áudio mono ou o segundo áudio mono externo). A saída tem os dois canais, mas o mesmo áudio em ambos os canais.

    
por Debendra Modi 22.05.2018 / 13:28

0 respostas

Tags