Форум программистов, компьютерный форум CyberForum.ru

ffmpeg конвертация файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Компилятор создает большие по объему *.exe файлы http://www.cyberforum.ru/cpp/thread937469.html
Раньше как-то не обращал внимание, точнее когда подмечал объем файла - 4 235, почему-то считал, что размер исчисляется в байтах(еще удивлялся откуда там так много инфы); оказывается это килобайты(( Даже написав простенькую программу, занимающую всего несколько байт реальной информации, компилятор создает файл объемом более 200кб. Конечно, в наше время технического прогресса, когда космические...
C++ Поясните пожалуйста задачу! (Написать программу, формирующую по исходному WAV файлу новый WAV файл) Задали на летнюю практику несколько задач. Вот одна из них: "Написать программу, формирующую по исходному WAV файлу новый WAV файл, продиференцированный с параметром N( < 1.0 ) и проинтегрированный c параметром M( < 1.0 )." Препод в отпуске и не может объяснить, а в интернете про это не нашел. Интересует собственно что такое дифференцирование и интегрирование WAV файла и если возможно какой... http://www.cyberforum.ru/cpp/thread937400.html
Как получить список аудиозаписей Вконтакте? C++
Пишу программу для составления рекомендательного списка музыки. Для этого мне требуется список моей музыки и моих друзей Вконтакте, по типу Личный список: Группа1 - песня1 Группа1 - песня2 Группа2 - песня1 и т.д. Желательно всё это поместить в обычный текстовый файл.
C++ CALLBACK
Здравствуйте, уважаемые форумчане. Передо мной стоит задача записи звука с микрофона в файл. Как считывать в буфер я разобрался. Но не понимаю каким образом работает callback-функция и как вообще с ней обращаться. А сделать надо так, чтобы при заполнении одного буфера функция записывала этот кусок в файл, затем следующий буфер и так до определенного момента. Вот кусок, который я написал...
C++ В сомнениях http://www.cyberforum.ru/cpp/thread936639.html
Здравствуйте. Вообщем опишу вам свою ситуацию, а вы мне уже подскажите как лучше быть. У меня есть программа написанная(не мной) на Qt, Суть этой проги в том, что она берет изображение, и выводит его спектр( с помощью Быстрого Преобразования Фурье). Мне в нее нужно добавить некоторые изменения. Но дело в том, что я очень плохо знаю Qt. Я хотел эту программу написать на C++(в Visual studio), но...
C++ Компонент Ehlib как использовать DataGrouping Добрый день!!! Столкнулся с проблемой в run-time нужно сделать групировку в гриде. Нашел даже код на делфях DBGridEh_Univ.DataGrouping.Active := False; DBGridEh_Univ.DataGrouping.GroupLevels.Clear; DBGridEh_Univ.DataGrouping.GroupLevels.Add.Column := DBGridEh_Univ.FindFieldColumn('x1'); DBGridEh_Univ.DataGrouping.GroupLevels.Add.Column :=... подробнее

Показать сообщение отдельно
nikphil87
0 / 0 / 0
Регистрация: 03.01.2010
Сообщений: 182
16.08.2013, 10:23  [ТС]
Спасибо, модификацией кода удалось устранить ошибкой вот работающий код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
void work_with_video()
{
    AVFormatContext *pFormatCtx = NULL;
    AVPacket avpkt;
    AVPacket avpkt1;
    AVCodec *pDCodec;
    AVCodec *pECodec;
    AVCodecContext *pCodecCtx;
    AVCodecContext *pECodecCtx;
    AVCodecContext *pDCodecCtx;
    FILE *f;
    AVFrame *pFrame;
    int videoStream, i, frameFinished, got_output;
    AVRational avrat;
 
 
    av_register_all();
 
    av_init_packet(&avpkt);
    
 
 
    avformat_open_input(&pFormatCtx,"001.avi",NULL,NULL);
 
    avformat_find_stream_info(pFormatCtx,NULL);
 
    videoStream=-1;
 
    for(i=0; i<pFormatCtx->nb_streams; i++)
        if(pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_VIDEO) 
    {
      videoStream=i;
      break;
    }
 
    pDCodecCtx = pFormatCtx->streams[videoStream]->codec;
 
    pECodecCtx = pFormatCtx->streams[videoStream]->codec;
 
    pDCodec = avcodec_find_decoder(pDCodecCtx->codec_id);
 
    pDCodecCtx = avcodec_alloc_context3(pDCodec);
 
    pECodec = avcodec_find_encoder(pECodecCtx->codec_id);
 
    pECodecCtx = avcodec_alloc_context3(pECodec);
    
    pECodecCtx -> bit_rate = 400000;
    pECodecCtx -> width = 352;
    pECodecCtx -> height = 288;
    avrat.num=1;
    avrat.den=25;
    pECodecCtx -> time_base= (AVRational)avrat;
    pECodecCtx -> gop_size = 10;
    pECodecCtx -> max_b_frames=1;
    pECodecCtx -> pix_fmt = AV_PIX_FMT_YUV420P;
 
    f = fopen("002.avi", "wb");
 
 
    avcodec_open2(pDCodecCtx,pDCodec,NULL);
 
 
    avcodec_open2(pECodecCtx,pECodec,NULL);
    
 
    pFrame = avcodec_alloc_frame();
 
    i=0;
    while(av_read_frame(pFormatCtx, &avpkt)>=0) 
    {
        if(avpkt.stream_index==videoStream) 
        {
             avcodec_decode_video2(pDCodecCtx, pFrame, &frameFinished, &avpkt);
             if(frameFinished) 
             {
             av_init_packet(&avpkt1);
             avcodec_encode_video2(pECodecCtx, &avpkt1, pFrame, &got_output);
             if (got_output) 
             {
             printf("Write frame %3d (size=%5d)\n", i, avpkt1.size);
             fwrite(avpkt1.data, 1, avpkt1.size, f);
             av_free_packet(&avpkt1);
             }
             av_free_packet(&avpkt1);
             }
        }
    }
    fclose(f);
}
В результате получился файл 002.avi. При его проигрывании возникает ошибка "can not renderer file", открыл в hexe заголовок у файла отсутсвует. Каким образом записывается заголовок, в экземплах нигде найти не могу.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru