Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
19 / 14 / 4
Регистрация: 10.07.2018
Сообщений: 321

Какая-то шляпа при подключении FFMPEG к VS 2017

04.01.2023, 17:39. Показов 4180. Ответов 49
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Какая-та шляпа при подключение FFMPEG к VS 2017

Скачали библиотеку с оф сайта распаковал на c:\ подключил в студии хэдеры, либы и вот такие ошибки типа что то где то не подключена а что да как и почему ?

Excemple C++ был загружен

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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
/*
* Copyright (c) 2001 Fabrice Bellard
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
 
/**
* @file
* video decoding with libavcodec API example
*
* @example decode_video.c
*/
#include "StdAfx.h"
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#include <libavcodec/avcodec.h>
 
#define INBUF_SIZE 4096
 
static void pgm_save(unsigned char *buf, int wrap, int xsize, int ysize,
    char *filename)
{
    FILE *f;
    int i;
 
    f = fopen(filename, "wb");
    fprintf(f, "P5\n%d %d\n%d\n", xsize, ysize, 255);
    for (i = 0; i < ysize; i++)
        fwrite(buf + i * wrap, 1, xsize, f);
    fclose(f);
}
 
static void decode(AVCodecContext *dec_ctx, AVFrame *frame, AVPacket *pkt,
    const char *filename)
{
    char buf[1024];
    int ret;
 
    ret = avcodec_send_packet(dec_ctx, pkt);
    if (ret < 0) {
        fprintf(stderr, "Error sending a packet for decoding\n");
        exit(1);
    }
 
    while (ret >= 0) {
        ret = avcodec_receive_frame(dec_ctx, frame);
        if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)
            return;
        else if (ret < 0) {
            fprintf(stderr, "Error during decoding\n");
            exit(1);
        }
 
        printf("saving frame %3d\n", dec_ctx->frame_number);
        fflush(stdout);
 
        /* the picture is allocated by the decoder. no need to
        free it */
        snprintf(buf, sizeof(buf), "%s-%d", filename, dec_ctx->frame_number);
        pgm_save(frame->data[0], frame->linesize[0],
            frame->width, frame->height, buf);
    }
}
 
int main(int argc, char **argv)
{
    const char *filename, *outfilename;
    const AVCodec *codec;
    AVCodecParserContext *parser;
    AVCodecContext *c = NULL;
    FILE *f;
    AVFrame *frame;
    uint8_t inbuf[INBUF_SIZE + AV_INPUT_BUFFER_PADDING_SIZE];
    uint8_t *data;
    size_t   data_size;
    int ret;
    int eof;
    AVPacket *pkt;
 
    if (argc <= 2) {
        fprintf(stderr, "Usage: %s <input file> <output file>\n"
            "And check your input file is encoded by mpeg1video please.\n", argv[0]);
        exit(0);
    }
    filename = argv[1];
    outfilename = argv[2];
 
    pkt = av_packet_alloc();
    if (!pkt)
        exit(1);
 
    /* set end of buffer to 0 (this ensures that no overreading happens for damaged MPEG streams) */
    memset(inbuf + INBUF_SIZE, 0, AV_INPUT_BUFFER_PADDING_SIZE);
 
    /* find the MPEG-1 video decoder */
    codec = avcodec_find_decoder(AV_CODEC_ID_MPEG1VIDEO);
    if (!codec) {
        fprintf(stderr, "Codec not found\n");
        exit(1);
    }
 
    parser = av_parser_init(codec->id);
    if (!parser) {
        fprintf(stderr, "parser not found\n");
        exit(1);
    }
 
    c = avcodec_alloc_context3(codec);
    if (!c) {
        fprintf(stderr, "Could not allocate video codec context\n");
        exit(1);
    }
 
    /* For some codecs, such as msmpeg4 and mpeg4, width and height
    MUST be initialized there because this information is not
    available in the bitstream. */
 
    /* open it */
    if (avcodec_open2(c, codec, NULL) < 0) {
        fprintf(stderr, "Could not open codec\n");
        exit(1);
    }
 
    f = fopen(filename, "rb");
    if (!f) {
        fprintf(stderr, "Could not open %s\n", filename);
        exit(1);
    }
 
    frame = av_frame_alloc();
    if (!frame) {
        fprintf(stderr, "Could not allocate video frame\n");
        exit(1);
    }
 
    do {
        /* read raw data from the input file */
        data_size = fread(inbuf, 1, INBUF_SIZE, f);
        if (ferror(f))
            break;
        eof = !data_size;
 
        /* use the parser to split the data into frames */
        data = inbuf;
        while (data_size > 0 || eof) {
            ret = av_parser_parse2(parser, c, &pkt->data, &pkt->size,
                data, data_size, AV_NOPTS_VALUE, AV_NOPTS_VALUE, 0);
            if (ret < 0) {
                fprintf(stderr, "Error while parsing\n");
                exit(1);
            }
            data += ret;
            data_size -= ret;
 
            if (pkt->size)
                decode(c, frame, pkt, outfilename);
            else if (eof)
                break;
        }
    } while (!eof);
 
    /* flush the decoder */
    decode(c, frame, NULL, outfilename);
 
    fclose(f);
 
    av_parser_close(parser);
    avcodec_free_context(&c);
    av_frame_free(&frame);
    av_packet_free(&pkt);
 
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Серьезность  Код  Описание    Проект    Файл    Строка    Состояние подавления
Ошибка    LNK2019 ссылка на неразрешенный внешний символ "struct AVFrame * __cdecl av_frame_alloc(void)" (?av_frame_alloc@@YAPEAUAVFrame@@XZ) в функции main    ConsoleApplication1 C:\Users\*\source\repos\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj 1   
Ошибка    LNK2019 ссылка на неразрешенный внешний символ "void __cdecl av_frame_free(struct AVFrame * *)" (?av_frame_free@@YAXPEAPEAUAVFrame@@@Z) в функции main    ConsoleApplication1 C:\Users\*\source\repos\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj 1   
Ошибка    LNK2019 ссылка на неразрешенный внешний символ "struct AVCodec const * __cdecl avcodec_find_decoder(enum AVCodecID)" (?avcodec_find_decoder@@YAPEBUAVCodec@@W4AVCodecID@@@Z) в функции main   ConsoleApplication1 C:\Users\*\source\repos\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj 1   
Ошибка    LNK2019 ссылка на неразрешенный внешний символ "struct AVPacket * __cdecl av_packet_alloc(void)" (?av_packet_alloc@@YAPEAUAVPacket@@XZ) в функции main    ConsoleApplication1 C:\Users\*\source\repos\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj 1   
Ошибка    LNK2019 ссылка на неразрешенный внешний символ "void __cdecl av_packet_free(struct AVPacket * *)" (?av_packet_free@@YAXPEAPEAUAVPacket@@@Z) в функции main    ConsoleApplication1 C:\Users\*\source\repos\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj 1   
Ошибка    LNK2019 ссылка на неразрешенный внешний символ "struct AVCodecContext * __cdecl avcodec_alloc_context3(struct AVCodec const *)" (?avcodec_alloc_context3@@YAPEAUAVCodecContext@@PEBUAVCodec@@@Z) в функции main   ConsoleApplication1 C:\Users\*\source\repos\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj 1   
Ошибка    LNK2019 ссылка на неразрешенный внешний символ "void __cdecl avcodec_free_context(struct AVCodecContext * *)" (?avcodec_free_context@@YAXPEAPEAUAVCodecContext@@@Z) в функции main    ConsoleApplication1 C:\Users\*\source\repos\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj 1   
Ошибка    LNK2019 ссылка на неразрешенный внешний символ "int __cdecl avcodec_open2(struct AVCodecContext *,struct AVCodec const *,struct AVDictionary * *)" (?avcodec_open2@@YAHPEAUAVCodecContext@@PEBUAVCodec@@PEAPEAUAVDictionary@@@Z) в функции main   ConsoleApplication1 C:\Users\*\source\repos\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj 1   
Ошибка    LNK2019 ссылка на неразрешенный внешний символ "int __cdecl avcodec_send_packet(struct AVCodecContext *,struct AVPacket const *)" (?avcodec_send_packet@@YAHPEAUAVCodecContext@@PEBUAVPacket@@@Z) в функции "void __cdecl decode(struct AVCodecContext *,struct AVFrame *,struct AVPacket *,char const *)" (?decode@@YAXPEAUAVCodecContext@@PEAUAVFrame@@PEAUAVPacket@@PEBD@Z)    ConsoleApplication1 C:\Users\*\source\repos\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj 1   
Ошибка    LNK2019 ссылка на неразрешенный внешний символ "int __cdecl avcodec_receive_frame(struct AVCodecContext *,struct AVFrame *)" (?avcodec_receive_frame@@YAHPEAUAVCodecContext@@PEAUAVFrame@@@Z) в функции "void __cdecl decode(struct AVCodecContext *,struct AVFrame *,struct AVPacket *,char const *)" (?decode@@YAXPEAUAVCodecContext@@PEAUAVFrame@@PEAUAVPacket@@PEBD@Z)    ConsoleApplication1 C:\Users\*\source\repos\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj 1   
Ошибка    LNK2019 ссылка на неразрешенный внешний символ "struct AVCodecParserContext * __cdecl av_parser_init(int)" (?av_parser_init@@YAPEAUAVCodecParserContext@@H@Z) в функции main  ConsoleApplication1 C:\Users\*\source\repos\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj 1   
Ошибка    LNK2019 ссылка на неразрешенный внешний символ "int __cdecl av_parser_parse2(struct AVCodecParserContext *,struct AVCodecContext *,unsigned char * *,int *,unsigned char const *,int,__int64,__int64,__int64)" (?av_parser_parse2@@YAHPEAUAVCodecParserContext@@PEAUAVCodecContext@@PEAPEAEPEAHPEBEH_J55@Z) в функции main    ConsoleApplication1 C:\Users\*\source\repos\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj 1   
Ошибка    LNK2019 ссылка на неразрешенный внешний символ "void __cdecl av_parser_close(struct AVCodecParserContext *)" (?av_parser_close@@YAXPEAUAVCodecParserContext@@@Z) в функции main   ConsoleApplication1 C:\Users\*\source\repos\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj 1
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.01.2023, 17:39
Ответы с готовыми решениями:

Какая разница при подключении vue.js через <script> или через npm
Здраствуйте, скажыте пожалуйста чем метод подключения vue через npm лучше чем через script

Сделать так чтобы при подключении нулевого порта выполнялся один цикл кода а при подключении другого - другой
Как сделать так чтобы при подключении нулевого порта выполнялся один цикл кода, а при подключении другого другой. И вообще возможно ли это...

Какая самая актуальная шифровка паролей на 2017 год?
Столкнулся недавно с таким вопросом. Начал искать в интернете и нашел много вариантов, но так и не разобрался какое шифрование выбрать....

49
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
04.01.2023, 18:25
Вы lib прописали? И вообще скомпилировали его до этого?
0
19 / 14 / 4
Регистрация: 10.07.2018
Сообщений: 321
04.01.2023, 18:43  [ТС]
Цитата Сообщение от brian778 Посмотреть сообщение
Вы lib прописали? И вообще скомпилировали его до этого?


0
19 / 14 / 4
Регистрация: 10.07.2018
Сообщений: 321
04.01.2023, 18:44  [ТС]
Может либов не хватает каких ни будь, как проверить ?
0
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
04.01.2023, 19:22
Цитата Сообщение от Юг Посмотреть сообщение
#include <libavcodec/avcodec.h>
Загорловки ffmpeg оберните в extern "C":
C++
1
2
3
extern "C" {
#include <libavcodec/avcodec.h>
}
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
04.01.2023, 19:23
Цитата Сообщение от Юг Посмотреть сообщение
C++
1
#include <libavcodec/avcodec.h>
C++
1
2
3
4
5
extern "C" {
 
#include <libavcodec/avcodec.h>
 
}
0
19 / 14 / 4
Регистрация: 10.07.2018
Сообщений: 321
04.01.2023, 20:53  [ТС]
Цитата Сообщение от zayats80888 Посмотреть сообщение
Загорловки ffmpeg оберните в extern "C":
Почему такое условие?
0
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
04.01.2023, 21:02
Цитата Сообщение от Юг Посмотреть сообщение
Почему такое условие?
FFmpeg написан на C
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
04.01.2023, 21:07
Цитата Сообщение от Юг Посмотреть сообщение
Почему такое условие?
Linkage для С и для С++ - разный. В частности потому, что С++ поддерживает перегрузку. Читайте здесь: https://en.wikipedia.org/wiki/Name_mangling
0
19 / 14 / 4
Регистрация: 10.07.2018
Сообщений: 321
04.01.2023, 21:37  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Linkage для С и для С++ - разный.
Скачал я пример, но он не заработал из за того что av_register_all() отсутствует. Поискал его в хэдерах и не нашел. Решил скачать другую версию старую 3.2.19 но в ней есть хэдеры но нет lib файлов. Может его надо как opencv компелировать через CMack например или я чего то не понимаю?

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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
// ConsoleApplication2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <stdio.h>  
 
#define __STDC_CONSTANT_MACROS  
 
extern "C"
{
#include "libavcodec/avcodec.h"  
#include "libavformat/avformat.h"  
#include "libswscale/swscale.h"  
};
 
 
int main(int argc, char* argv[])
{
    AVFormatContext *pFormatCtx;
    int             i, videoindex;
    AVCodecContext  *pCodecCtx;
    AVCodec         *pCodec;
    AVFrame *pFrame, *pFrameYUV;
    uint8_t *out_buffer;
    AVPacket *packet;
    int y_size;
    int ret, got_picture;
    struct SwsContext *img_convert_ctx;
    // Вводим путь к файлу  
    char filepath[] = "../video/Titanic.ts";
 
    int frame_cnt;
    
    av_register_all(); // Регистрируем все компоненты  
    avformat_network_init();
    pFormatCtx = avformat_alloc_context();
 
    // Открываем исходный видеофайл  
    if (avformat_open_input(&pFormatCtx, filepath, NULL, NULL) != 0) {
        printf("Couldn't open input stream.\n");
        return -1;
    }
    // Получаем информацию о видеофайле  
    if (avformat_find_stream_info(pFormatCtx, NULL)<0) {
        printf("Couldn't find stream information.\n");
        return -1;
    }
    videoindex = -1;
    for (i = 0; i<pFormatCtx->nb_streams; i++)
        if (pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
            videoindex = i; // Находим позицию в массиве видео  
            break;
        }
    if (videoindex == -1) {
        printf("Didn't find a video stream.\n");
        return -1;
    }
 
    pCodecCtx = pFormatCtx->streams[videoindex]->codec;
    pCodec = avcodec_find_decoder(pCodecCtx->codec_id); // Находим декодер  
    if (pCodec == NULL) {
        printf("Codec not found.\n");
        return -1;
    }
    if (avcodec_open2(pCodecCtx, pCodec, NULL) <0) {// Открываем декодер  
        printf("Could not open codec.\n");
        return -1;
    }
    /*
    * Добавьте сюда код для вывода видеоинформации
    * Взято из pFormatCtx, используя fprintf ()
    */
    printf("Длительность видео:% dμs \ n", pFormatCtx->duration); // Ввод длительности видео (в микросекундах)  
 
 
 
    pFrame = av_frame_alloc();
    pFrameYUV = av_frame_alloc();
    out_buffer = (uint8_t *)av_malloc(avpicture_get_size(AV_PIX_FMT_YUV420P, pCodecCtx->width, pCodecCtx->height));
    avpicture_fill((AVPicture *)pFrameYUV, out_buffer, AV_PIX_FMT_YUV420P, pCodecCtx->width, pCodecCtx->height);
    packet = (AVPacket *)av_malloc(sizeof(AVPacket));
    //Output Info-----------------------------  
    printf("--------------- File Information ----------------\n");
    av_dump_format(pFormatCtx, 0, filepath, 0);
    printf("-------------------------------------------------\n");
    img_convert_ctx = sws_getContext(pCodecCtx->width, pCodecCtx->height, pCodecCtx->pix_fmt,
        pCodecCtx->width, pCodecCtx->height, AV_PIX_FMT_YUV420P, SWS_BICUBIC, NULL, NULL, NULL);
 
    frame_cnt = 0;
    // Считываем фрейм сжатых данных из входного файла  
    while (av_read_frame(pFormatCtx, packet) >= 0) {
        if (packet->stream_index == videoindex) {
            /*
            * Добавьте сюда код для вывода потока H264
            * Взято из пакета, используйте fwrite ()
            */
            ret = avcodec_decode_video2(pCodecCtx, pFrame, &got_picture, packet); // Декодируем кадр сжатых данных  
            if (ret < 0) {
                printf("Decode Error.\n");
                return -1;
            }
            if (got_picture) {
                sws_scale(img_convert_ctx, (const uint8_t* const*)pFrame->data, pFrame->linesize, 0, pCodecCtx->height,
                    pFrameYUV->data, pFrameYUV->linesize);
                printf("Decoded frame index: %d\n", frame_cnt);
 
                /*
                * Добавьте сюда код для вывода YUV
                * Взято из pFrameYUV с использованием fwrite ()
                */
 
                frame_cnt++;
 
            }
        }
    
        av_packet_free(packet);
    }
 
    sws_freeContext(img_convert_ctx);
 
    av_frame_free(&pFrameYUV);
    av_frame_free(&pFrame);
    avcodec_close(pCodecCtx); // Закрываем декодер  
    avformat_close_input(&pFormatCtx); // Закрываем входной видеофайл.  
 
    return 0;
}
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
04.01.2023, 21:40
Юг, может просто пример поновее взять?

Добавлено через 1 минуту
Вообще в changelog написано, что этот вызов можно просто не писать. Его убрали, потому что он больше не нужен.
0
19 / 14 / 4
Регистрация: 10.07.2018
Сообщений: 321
04.01.2023, 21:42  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
может просто пример поновее взять?
Был- бы талмут, было бы проще - его полистать, а тут не понятно, как что и почему..А людей на форуму явно нет, которые этой камбалой занимаются.
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
04.01.2023, 21:52
Цитата Сообщение от Юг Посмотреть сообщение
Был- бы талмут, было бы проще - его полистать, а тут не понятно, как что и почему.
Источник актуальных примеров, как ни странно ( ), актуальный репозиторий ffmpeg: https://github.com/FFmpeg/FFmp... c/examples
1
19 / 14 / 4
Регистрация: 10.07.2018
Сообщений: 321
04.01.2023, 22:13  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Источник актуальных примеров, как ни странно ( ), актуальный репозиторий ffmpeg: https://github.com/FFmpeg/FFmp... c/examples
Без изменений, опять сыпятся ошибки на неразрешеный символ и в том нет lib - ов) короче **рень какая та
0
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
04.01.2023, 22:20
Я повторю вопрос
Вы указали Additional Library Directories (не знаю как это в русской версии студии)
0
19 / 14 / 4
Регистрация: 10.07.2018
Сообщений: 321
04.01.2023, 22:22  [ТС]
Цитата Сообщение от brian778 Посмотреть сообщение
Я повторю вопрос
Вы указали Additional Library Directories (не знаю как это в русской версии студии)
Я скрины прикладывал, Компоновщик\ввод\дополнительные зависимости и там все lib файлы перечислил.
0
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
04.01.2023, 22:25
Картинка с гугла. На ней вас интересует Library Directories
Миниатюры
Какая-то шляпа при подключении FFMPEG к VS 2017  
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
04.01.2023, 22:26
Цитата Сообщение от Юг Посмотреть сообщение
Я скрины прикладывал, Компоновщик\ввод\дополнительные зависимости и там все lib файлы перечислил.
На скринах нет прописанных каталогов с lib. Там у вас только для include путь.
0
19 / 14 / 4
Регистрация: 10.07.2018
Сообщений: 321
04.01.2023, 22:29  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
На скринах нет прописанных каталогов с lib. Там у вас только для include путь.
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка LNK1104 не удается открыть файл "avcodec.lib" ConsoleApplication2 C:\Users\*\source\repos\ConsoleApplicati on2\ConsoleApplication2\LINK 1
Скоро комп в окно выкину)
0
19 / 14 / 4
Регистрация: 10.07.2018
Сообщений: 321
04.01.2023, 22:31  [ТС]
Цитата Сообщение от brian778 Посмотреть сообщение
Картинка с гугла. На ней вас интересует Library Directories
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.01.2023, 22:31
Помогаю со студенческими работами здесь

Какая среда лучше: Visual Studio 2015 или 2017?
Стоит ли переходить на 17-ю вижлу? Стоит ли она того, чтобы качать почти 30 гигов? Или связка 15-я вижла + решарпер будет хорошим решением?

RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work warn
import matplotlib.pyplot as plt import Squarediamondlib as Land from pydub import AudioSegment from pydub.playback import play ...

Шляпа
Летом Максим съездил в Летнюю Какую-то Школу, где, помимо учёбы, ему очень запомнилась игра «Шляпа», в которую он вместе с друзьями играл...

Шляпа
Шляпа Летом Максим съездил в Летнюю Какую-то Школу, где, помимо учёбы, ему очень запомнилась игра «Шляпа», в которую он вместе с друзьями...

Ошибка при подключении "В удаленном подключении отказано"
Что может означать следующая ошибка? Пороль и имя правильны! Еще появляется такое сообщение


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru