av_register_all();
//Открываем видео источник
err = av_open_input_file( &pFormatCtxSrcFl, srcFlNm, NULL, 0, NULL );
err = av_find_stream_info( pFormatCtxSrcFl );
if( err < 0 )
{
cout << "\nUnable to find stream info!\n " << err << endl;
return -1;
}
cout << "Found the audio streams:" << endl;
for( i = 0; i < pFormatCtxSrcFl -> nb_streams; i++ )
{
if( pFormatCtxSrcFl->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO )
cout << "\taudio stream " << pFormatCtxSrcFl->streams[ i ]->id << endl;
}
while( true )
{
cout << "\nEnter the PID: ";
cin >> enterPID;
for( i = 0; i < pFormatCtxSrcFl -> nb_streams; i++ )
{
if( ( pFormatCtxSrcFl->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO )
&& ( pFormatCtxSrcFl->streams[ i ]->id == enterPID ) )
break;
}
if( i != pFormatCtxSrcFl->nb_streams )
break;
else
cout << "Error: Invalid PID!" << endl;
}
//Файл в который будем записывать
err = av_open_input_file( &pFormatCtxOutFl, outFlNm, NULL, 0, NULL );
err = av_find_stream_info( pFormatCtxOutFl );
if( err < 0 )
{
cout << "\nUnable to find stream info!\n " << err << endl;
return -1;
}
newIDProgram = getID( pFormatCtxOutFl->streams, pFormatCtxOutFl->nb_streams );
av_new_stream( pFormatCtxOutFl, newIDProgram );
nb_audStrOut = pFormatCtxOutFl->nb_streams - 1;
memcpy( pFormatCtxOutFl->streams[ nb_audStrOut ], pFormatCtxSrcFl->streams[ i ], sizeof( AVStream ) );
av_write_header( pFormatCtxOutFl );
Возникает ошибка :
[mpegts @ 0x839ec60]Aspect ratio mismatch between encoder and muxer layer
Хотя к видео потоку я вообще не прикосаюсь