2016-07-14 7 views
1

Я пытаюсь скомпилировать ffmpeg на моей малине-пи, но он дает мне много предупреждений, таких как (кодек устарел), особенно во время выполнения sudo make.ffmpeg компиляция Ошибка

[email protected]:/usr/src/ffmpeg $ sudo make && sudo make install 

....... lots of successful execution here ...... 


CC libavfilter/avf_showfreqs.o 
libavfilter/lavfutils.c: In function ‘ff_load_image’: 
libavfilter/lavfutils.c:53:5: warning: ‘codec’ is deprecated (declared at ./libavformat/avformat.h:880) [-Wdeprecated-declarations] 
codec_ctx = format_ctx->streams[0]->codec; 
^ 
libavfilter/lavfutils.c:79:5: warning: ‘avcodec_decode_video2’ is deprecated (declared at ./libavcodec/avcodec.h:4763) [-Wdeprecated-declarations] 
ret = avcodec_decode_video2(codec_ctx, frame, &frame_decoded, &pkt); 
^ 
CC libavfilter/lswsutils.o 
CC libavfilter/opencl_allkernels.o 
CC libavfilter/pthread.o 
CC libavfilter/setpts.o 
CC libavfilter/settb.o 
CC libavfilter/split.o 
CC libavfilter/src_movie.o 
libavfilter/src_movie.c: In function ‘movie_push_frame’: 
libavfilter/src_movie.c:524:9: warning: ‘avcodec_decode_video2’ is deprecated (declared at ./libavcodec/avcodec.h:4763) [-Wdeprecated-declarations] 
    ret = avcodec_decode_video2(st->codec_ctx, frame, &got_frame, pkt); 
    ^
libavfilter/src_movie.c:527:9: warning: ‘avcodec_decode_audio4’ is deprecated (declared at ./libavcodec/avcodec.h:4714) [-Wdeprecated-declarations] 
    ret = avcodec_decode_audio4(st->codec_ctx, frame, &got_frame, pkt); 
    ^
CC libavfilter/transform.o 
CC libavfilter/trim.o 
CC libavfilter/vaf_spectrumsynth.o 
libavfilter/vaf_spectrumsynth.c: In function ‘try_push_frame’: 
libavfilter/vaf_spectrumsynth.c:370:19: warning: variable ‘ret’ set but not used [-Wunused-but-set-variable] 
int ch, n, i, ret;    ^
CC libavfilter/vf_alphamerge.o 
CC libavfilter/vf_aspect.o 
CC libavfilter/vf_atadenoise.o 
CC libavfilter/vf_colorlevels.o 
CC libavfilter/vf_colorspace.o 
libavfilter/vf_colorspace.c: In function ‘fill_rgb2xyz_table’: 
libavfilter/vf_colorspace.c:360:22: warning: passing argument 1 of ‘invert_matrix3x3’ from incompatible pointer type 
invert_matrix3x3(rgb2xyz, i); 
       ^
libavfilter/vf_colorspace.c:277:13: note: expected ‘const double (*)[3]’ but argument is of type ‘double (*)[3]’ 
static void invert_matrix3x3(const double in[3][3], double out[3][3]) 
     ^
libavfilter/vf_colorspace.c: In function ‘fill_whitepoint_conv_table’: 
libavfilter/vf_colorspace.c:424:21: warning: passing argument 3 of ‘mul3x3’ from incompatible pointer type 
mul3x3(tmp, ma, fac); 
libavfilter/vf_colorspace.c:376:13: note: expected ‘const double (*)[3]’ but argument is of type ‘double (*)[3]’ 
static void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3]) 
     ^
libavfilter/vf_colorspace.c:425:17: warning: passing argument 2 of ‘mul3x3’ from incompatible pointer type 
mul3x3(out, tmp, mai); 
      ^
libavfilter/vf_colorspace.c:376:13: note: expected ‘const double (*)[3]’ but argument is of type ‘double (*)[3]’ 
static void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3]) 
     ^
libavfilter/vf_colorspace.c:425:22: warning: passing argument 3 of ‘mul3x3’ from incompatible pointer type 
mul3x3(out, tmp, mai); 
       ^
libavfilter/vf_colorspace.c:376:13: note: expected ‘const double (*)[3]’ but argument is of type ‘double (*)[3]’ 
static void mul3x3(double dst[3][3], const double src1[3][3], const double src2[3][3]) 
     ^
libavfilter/vf_colorspace.c: In function ‘convert’: 
libavfilter/vf_colorspace.c:480:20: warning: passing argument 7 of ‘s->yuv2yuv’ from incompatible pointer type 
       s->yuv2yuv_coeffs, s->yuv_offset); 
       ^
libavfilter/vf_colorspace.c:480:20: note: expected ‘const int16_t (*)[3][8]’ but argument is of type ‘int16_t (*)[3][8]’ 
libavfilter/vf_colorspace.c:480:39: warning: passing argument 8 of ‘s->yuv2yuv’ from incompatible pointer type 
       s->yuv2yuv_coeffs, s->yuv_offset); 
           ^
libavfilter/vf_colorspace.c:480:39: note: expected ‘const int16_t (*)[8]’ but argument is of type ‘int16_t (*)[8]’ 
libavfilter/vf_colorspace.c:502:20: warning: passing argument 7 of ‘s->yuv2rgb’ from incompatible pointer type 
       s->yuv2rgb_coeffs, s->yuv_offset[0]); 
       ^
libavfilter/vf_colorspace.c:502:20: note: expected ‘const int16_t (*)[3][8]’ but argument is of type ‘int16_t (*)[3][8]’ 
libavfilter/vf_colorspace.c:506:62: warning: passing argument 5 of ‘s->dsp.multiply3x3’ from incompatible pointer type 
      s->dsp.multiply3x3(rgb, s->rgb_stride, w, h, s->lrgb2lrgb_coeffs); 
                 ^
libavfilter/vf_colorspace.c:506:62: note: expected ‘const int16_t (*)[3][8]’ but argument is of type ‘int16_t (*)[3][8]’ 
libavfilter/vf_colorspace.c:511:28: warning: passing argument 7 of ‘s->rgb2yuv_fsb’ from incompatible pointer type 
         s->rgb2yuv_coeffs, s->yuv_offset[1], s->dither_scratch); 
         ^
libavfilter/vf_colorspace.c:511:28: note: expected ‘const int16_t (*)[3][8]’ but argument is of type ‘int16_t (*)[3][8]’ 
libavfilter/vf_colorspace.c:514:24: warning: passing argument 7 of ‘s->rgb2yuv’ from incompatible pointer type 
        s->rgb2yuv_coeffs, s->yuv_offset[1]); 
        ^
libavfilter/vf_colorspace.c:514:24: note: expected ‘const int16_t (*)[3][8]’ but argument is of type ‘int16_t (*)[3][8]’ 
libavfilter/vf_colorspace.c: In function ‘create_filtergraph’: 
libavfilter/vf_colorspace.c:614:30: warning: passing argument 1 of ‘invert_matrix3x3’ from incompatible pointer type 

       ^

и продолжается до сих пор ....

Как решить эту проблему? что может быть проблемой для этих предупреждений?

+0

Можете ли вы предоставить версию, которую используете? – arshpreet

+0

Я использую ffmpeg 3.1.1 – SivamNatesan

+0

попробуйте этот: http://johnvansickle.com/ffmpeg/release-source/ :) – arshpreet

ответ

1

Прежде всего, не компилируются под корень.

Вы должны запустить make в качестве обычного пользователя без sudo.

Выполняйте только sudo make install, если вы устанавливаете его в корневом каталоге (например, /usr или /usr/local).


Что касается вашего вопроса, предупреждений опоздавших из кода FFmpeg, не то, что вы сделали по компиляции.

Возможно, вы используете новый gcc, чем разработчики ffmpeg, а ваша более новая версия сообщает о предупреждениях для вещей, которые раньше считались одобренными. Или может быть, что вы использовали некоторые опции gcc, которые включали некоторые предупреждения, и разработчики ffmpeg отключили эти функции. Или может быть, что ffmpeg также видел эти предупреждения при компиляции и решил игнорировать их.

Но это только предупреждения, то есть компилятор говорит вам: «Это подозрительно, вы можете проверить его, но это, вероятно, будет хорошо». Поэтому, если вы не определяете актуальные проблемы, вы можете игнорировать их или отправлять исправление вверх по течению, которое меняет код таким образом, что предупреждение исчезает (и что код остается правильным, конечно).

Например, я вижу экземпляр warning: variable ‘ret’ set but not used [-Wunused-but-set-variable]. Ну, вы можете отправить вверх по течению патч, который удалит определение этой переменной, и точно так же одно предупреждение исчезнет. :)

В выводе, который вы предоставили, нет ошибки, поэтому я предполагаю, что ваша компиляция прошла успешно, и вы с радостью используете новую сборку ffmpeg.

Или есть фактическая ошибка, которую вы не вставляете сюда?

+0

Да, компиляция выполнена успешно, и нет ошибки, но все, кажется, только предупреждение. может мне нужно беспокоиться об этих предупреждениях? – SivamNatesan

+0

Если вы не можете прочитать и исправить исходный код, вам не о чем беспокоиться, нет. :) –

+0

Я очень беспокоился об этом. Большое вам спасибо :) – SivamNatesan

 Смежные вопросы

  • Нет связанных вопросов^_^