Newest 'x264' Questions - Stack Overflow
Les articles publiés sur le site
-
x264 encoder source documentation [closed]
9 mars 2013, par deepakCan anyone please let me know if there is any documentation of x264 source available? Actually I wanted to know exactly what tasks each c file carry out.
I am new to it.
Thanks in advance
-
x264 library speed - Altivec vs SSE2 -
25 février 2013, par Omer MerdanI have simple cheap dualcore intel-3ghz-debian and access to super-expensive powerPc7-Aix.
And after few days of strugle, i compiled libx264 and tested it on both computers:
- GCC: library x264 on intel (with SSE2 capabilities) and
- GCC on 16 core powerPc (with altivec).
... and result is that cheap intel is x2 times faster ! (with altivec disabled, intel is 10x times faster)
My question: is this normal? Does all other powerPC-users have same results? Can powerPc-altivec-optimisation of x264 library work at same speed with intel... or MMX/SSE optimisation is officially at least 2 times faster for this library?
I am not interested in multi-thread options. Number of cores and threads are irrelevant. Just simple one-thread x264 encoding with default "medium preset" using rawvideo as source, sse vs altivec.
Maybe native Aix XLC compiler provide better results? (i managed only gcc to work)
... mac-powerpc-users maybe know something about this.
powrPc7-Aix:$ time (cat raw10sec.y4m |x264 --input-res 720x576 --fps 50 -o /dev/null -) x264: 64-bit XCOFF x264 [info]: using cpu capabilities: Altivec time: real 0m33.559s --- intelDebian:$ time (cat raw10sec.y4m |x264 --input-res 720x576 --fps 50 -o /dev/null -) x264: ELF 32-bit LSB executable x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64 time: real 0m16.503s
-
Video encoding and keyframes
24 février 2013, par TishuI am transcoding a video frame by frame and using x264+ffmpeg to encode. The original video plays fine, but the first few frames of my transcoded vide show grey artefacts. I understand this is because of time compression and these artefacts disappear after a few frames.
See these two pictures which are the first and second frames. The third frame is normal (i.e. no grey artefact and not blurry like the second one)
How can I force the first frame to be a key frame (ie fully encoded in my output video) so that these artefacts do not show?
Edit - more details
Here is what I am doing more in details. I used bit form differents tutorials to read a video frame by frame and reencode each frame to a new video. My encoding parameters are the following:
avcodec_get_context_defaults3(c, *codec); c->codec_id = codec_id; c->bit_rate = output_bitrate; /* Resolution must be a multiple of two. */ c->width = output_width; c->height = output_height; /* timebase: This is the fundamental unit of time (in seconds) in terms * of which frame timestamps are represented. For fixed-fps content, * timebase should be 1/framerate and timestamp increments should be * identical to 1. */ st->r_frame_rate.num = output_framerate_num; st->r_frame_rate.den = output_framerate_den; c->time_base.den = output_timebase_den; c->time_base.num = output_timebase_num; c->gop_size = 3; /* emit one intra frame every twelve frames at most */ c->pix_fmt = STREAM_PIX_FMT; if (c->codec_id == AV_CODEC_ID_MPEG2VIDEO) { /* just for testing, we also add B frames */ c->max_b_frames = 2; } if (c->codec_id == AV_CODEC_ID_MPEG1VIDEO) { /* Needed to avoid using macroblocks in which some coeffs overflow. * This does not happen with normal video, it just happens here as * the motion of the chroma plane does not match the luma plane. */ c->mb_decision = 2; } c->max_b_frames = 2; c->scenechange_threshold = 0; c->rc_buffer_size = 0; c->me_method = ME_ZERO;
Then I process each frame, probably doing something wrong there. The decoding bit:
while(av_read_frame(gFormatCtx, &packet)>=0) { // Is this a packet from the video stream? if(packet.stream_index==gVideoStreamIndex) { // Decode video frame avcodec_decode_video2(gVideoCodecCtx, pCurrentFrame, &frameFinished, &packet); // Did we get a video frame? if(frameFinished) { [...] if(firstPts == -999) /*Initial value*/ firstPts = packet.pts; deltaPts = packet.pts - firstPts; double seconds = deltaPts*av_q2d(gFormatCtx->streams[gVideoStreamIndex]->time_base); [...] muxing_writeVideoFrame(pCurrentFrame, packet.pts); } } }
The actual writing:
int muxing_writeVideoFrame(AVFrame *frame, int64_t pts) { frameCount = frameCount +1; if(frameCount > 0) { if (video_st) video_pts = (double)video_st->pts.val * video_st->time_base.num / video_st->time_base.den; else video_pts = 0.0; if (video_st && !(video_st && audio_st && audio_pts < video_pts)) { frame->pts = pts;//av_rescale_q(frame_count, video_st->codec->time_base, video_st->time_base); write_video_frame(oc, video_st, frame); } } return 0; } static int write_video_frame(AVFormatContext *oc, AVStream *st, AVFrame *frame) { int ret; static struct SwsContext *sws_ctx; //LOGI(10, frame_count); AVCodecContext *c = st->codec; /* encode the image */ AVPacket pkt; int got_output; av_init_packet(&pkt); pkt.data = NULL; // packet data will be allocated by the encoder pkt.size = 0; ret = avcodec_encode_video2(c, &pkt, frame, &got_output); if (ret < 0) { fprintf(stderr, "Error encoding video frame: %s\n", av_err2str(ret)); exit(1); } /* If size is zero, it means the image was buffered. */ if (got_output) { if (c->coded_frame->key_frame) pkt.flags |= AV_PKT_FLAG_KEY; pkt.stream_index = st->index; /* Write the compressed frame to the media file. */ ret = av_interleaved_write_frame(oc, &pkt); } else { ret = 0; } if (ret != 0) { LOGI(10, av_err2str(ret)); exit(1); } frame_count++; return got_output; }
-
Reducing the bit rate is dropping the audio stream [closed]
19 février 2013, par user977505I'm a newbie to the ffmpeg, x264 commands and conversion. So please bear w/ me.
I've a H.264 content w/ very high bit rate and I'm using ffmepg, x264 commands to reduce the bit rate. The bit rate is getting reduced but the problem is the output doesn't have the audio stream anymore.
Here are the commands, I'm using:
ffmpeg.exe -i King_Maker_Leader.mp4 -pix_fmt yuv420p -vf scale=1024:576 -r 24 \ -f yuv4mpegpipe - | x264.exe --bitrate 1664 --demuxer y4m \ --preset slow --ref 3 --threads 6 --thread-input --no-scenecut \ --no-interlaced --stats King_Maker_Leader.stats --vbv-bufsize 3328000 \ --vbv-maxrate 1996 --pass 1 --output NUL --profile main --level 3.1 --sar 1:1 \ --tune film --keyint 96 - ffmpeg.exe -i King_Maker_Leader.mp4 -pix_fmt yuv420p -vf scale=1024:576 \ -r 24 -f yuv4mpegpipe - | x264.exe --bitrate 1664 --demuxer y4m \ --preset slow --ref 3 --threads 6 --thread-input --no-scenecut \ --no-interlaced --stats King_Maker_Leader.stats --vbv-bufsize 3328000 \ --vbv-maxrate 1996 --pass 2 --output King_Maker_Leader_generated.mp4 \ --profile main --level 3.1 --sar 1:1 --tune film --keyint 96 -
I cannot figure out what is wrong with the above commands.
I'm attaching the partial logs from pass 2 command that show the input has two streams (video and audio) and the output has only video stream.
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '..\yathrakkarude_sathruka.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf54.6.101 Duration: 00:01:00.37, start: 0.000000, bitrate: 8587 kb/s Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 720x576 [ SAR 16:11 DAR 20:11], 8073 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc Metadata: handler_name : VideoHandler Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 508 kb/s Metadata: handler_name : SoundHandler Output #0, yuv4mpegpipe, to 'pipe:': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf54.25.104 Stream #0:0(eng): Video: rawvideo (I420 / 0x30323449), yuv420p, 1024x576 [SA R 45:44 DAR 20:11], q=2-31, 200 kb/s, 90k tbn, 24 tbc Metadata: handler_name : VideoHandler Stream mapping: Stream #0:0 -> #0:0 (h264 -> rawvideo) Press [q] to stop, [?] for help [yuv4mpegpipe @ 016d5800] Encoder did not produce proper pts, making some up. y4m [info]: 1024x576p 45:44 @ 24/1 fps (cfr) x264 [info]: using SAR=1/1 x264 [warning]: VBV buffer (2000000) > level limit (14000) x264 [info]: using cpu capabilities: MMX2 SSE2Fast FastShuffle SSEMisalign LZCNT
-
compiling x264 on centos 5.9
12 février 2013, par user1820718I get the follwoing error while trying to compile x264 on centos 5.9. If anyone can help i'll much appreciate it :
gcc -o x264 x264.o input/input.o input/timecode.o input/raw.o input/y4m.o output/raw.o output/matroska.o output/matroska_ebml.o output/flv.o output/flv_bytestream.o filters/filters.o filters/video/video.o filters/video/source.o filters/video/internal.o filters/video/resize.o filters/video/cache.o filters/video/fix_vfr_pts.o filters/video/select_every.o filters/video/crop.o filters/video/depth.o input/thread.o input/lavf.o libx264.a -L. -lavformat -lpostproc -lavcodec -lswscale -lavutil -lm -lz -lbz2 -lpthread -lswscale -lavutil -m64 -lm -lpthread
Error:
/usr/local/lib/libavcodec.a(libmp3lame.o): In function `mp3lame_encode_close': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:90: undefined reference to `lame_close' /usr/local/lib/libavcodec.a(libmp3lame.o): In function `mp3lame_encode_frame': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:220: undefined reference to `lame_encode_flush' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:198: undefined reference to `lame_encode_buffer' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:214: undefined reference to `lame_encode_buffer_float' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:201: undefined reference to `lame_encode_buffer_int' /usr/local/lib/libavcodec.a(libmp3lame.o): In function `mp3lame_encode_init': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:102: undefined reference to `lame_init' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:106: undefined reference to `lame_set_num_channels' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:107: undefined reference to `lame_set_mode' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:110: undefined reference to `lame_set_in_samplerate' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:111: undefined reference to `lame_set_out_samplerate' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:117: undefined reference to `lame_set_quality' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:129: undefined reference to `lame_set_bWriteVbrTag' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:132: undefined reference to `lame_set_disable_reservoir' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:135: undefined reference to `lame_init_params' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:141: undefined reference to `lame_get_encoder_delay' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:144: undefined reference to `lame_get_framesize' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:121: undefined reference to `lame_set_VBR' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:122: undefined reference to `lame_set_VBR_quality' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:115: undefined reference to `lame_set_quality' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libmp3lame.c:125: undefined reference to `lame_set_brate' /usr/local/lib/libavcodec.a(libvorbisdec.o): In function `oggvorbis_decode_close': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisdec.c:184: undefined reference to `vorbis_info_clear' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisdec.c:185: undefined reference to `vorbis_comment_clear' /usr/local/lib/libavcodec.a(libvorbisdec.o): In function `oggvorbis_decode_frame': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisdec.c:161: undefined reference to `vorbis_synthesis' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisdec.c:162: undefined reference to `vorbis_synthesis_blockin' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisdec.c:167: undefined reference to `vorbis_synthesis_pcmout' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisdec.c:171: undefined reference to `vorbis_synthesis_read' /usr/local/lib/libavcodec.a(libvorbisdec.o): In function `oggvorbis_decode_init': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisdec.c:42: undefined reference to `vorbis_info_init' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisdec.c:43: undefined reference to `vorbis_comment_init' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisdec.c:94: undefined reference to `vorbis_synthesis_headerin' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisdec.c:94: undefined reference to `vorbis_synthesis_headerin' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisdec.c:94: undefined reference to `vorbis_synthesis_headerin' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisdec.c:104: undefined reference to `vorbis_synthesis_init' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisdec.c:105: undefined reference to `vorbis_block_init' /usr/local/lib/libavcodec.a(libvorbisenc.o): In function `oggvorbis_encode_close': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:182: undefined reference to `vorbis_analysis_wrote' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:184: undefined reference to `vorbis_block_clear' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:185: undefined reference to `vorbis_dsp_clear' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:186: undefined reference to `vorbis_info_clear' /usr/local/lib/libavcodec.a(libvorbisenc.o): In function `oggvorbis_encode_frame': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:297: undefined reference to `vorbis_analysis_buffer' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:304: undefined reference to `vorbis_analysis_wrote' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:320: undefined reference to `vorbis_analysis_blockout' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:321: undefined reference to `vorbis_analysis' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:323: undefined reference to `vorbis_bitrate_addblock' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:327: undefined reference to `vorbis_bitrate_flushpacket' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:312: undefined reference to `vorbis_analysis_wrote' /usr/local/lib/libavcodec.a(libvorbisenc.o): In function `oggvorbis_encode_init': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:206: undefined reference to `vorbis_info_init' /usr/local/lib/libavcodec.a(libvorbisenc.o): In function `oggvorbis_init_encoder': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:109: undefined reference to `vorbis_encode_setup_managed' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:100: undefined reference to `vorbis_encode_setup_vbr' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:123: undefined reference to `vorbis_encode_ctl' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:162: undefined reference to `vorbis_encode_setup_init' /usr/local/lib/libavcodec.a(libvorbisenc.o): In function `oggvorbis_encode_init': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:211: undefined reference to `vorbis_analysis_init' /usr/local/lib/libavcodec.a(libvorbisenc.o): In function `oggvorbis_init_encoder': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:116: undefined reference to `vorbis_encode_ctl' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:129: undefined reference to `vorbis_encode_ctl' /usr/local/lib/libavcodec.a(libvorbisenc.o): In function `oggvorbis_encode_init': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:217: undefined reference to `vorbis_block_init' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:223: undefined reference to `vorbis_comment_init' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:227: undefined reference to `vorbis_analysis_headerout' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:259: undefined reference to `vorbis_comment_clear' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvorbisenc.c:225: undefined reference to `vorbis_comment_add_tag' /usr/local/lib/libavcodec.a(libvpxdec.o): In function `vpx_init': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxdec.c:47: undefined reference to `vpx_codec_version_str' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxdec.c:48: undefined reference to `vpx_codec_build_config' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxdec.c:50: undefined reference to `vpx_codec_dec_init_ver' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxdec.c:51: undefined reference to `vpx_codec_error' /usr/local/lib/libavcodec.a(libvpxdec.o): In function `vp9_init': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxdec.c:137: undefined reference to `vpx_codec_vp9_dx_algo' /usr/local/lib/libavcodec.a(libvpxdec.o): In function `vp8_init': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxdec.c:118: undefined reference to `vpx_codec_vp8_dx_algo' /usr/local/lib/libavcodec.a(libvpxdec.o): In function `vp8_free': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxdec.c:111: undefined reference to `vpx_codec_destroy' /usr/local/lib/libavcodec.a(libvpxdec.o): In function `vp8_decode': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxdec.c:69: undefined reference to `vpx_codec_decode' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxdec.c:81: undefined reference to `vpx_codec_get_frame' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxdec.c:71: undefined reference to `vpx_codec_error' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxdec.c:72: undefined reference to `vpx_codec_error_detail' /usr/local/lib/libavcodec.a(libvpxenc.o): In function `codecctl_int': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:208: undefined reference to `vpx_codec_control_' /usr/local/lib/libavcodec.a(libvpxenc.o): In function `log_encoder_error': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:107: undefined reference to `vpx_codec_error' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:108: undefined reference to `vpx_codec_error_detail' /usr/local/lib/libavcodec.a(libvpxenc.o): In function `vp8_free': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:222: undefined reference to `vpx_codec_destroy' /usr/local/lib/libavcodec.a(libvpxenc.o): In function `vp8_encode': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:546: undefined reference to `vpx_codec_encode' /usr/local/lib/libavcodec.a(libvpxenc.o): In function `queue_frames': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:465: undefined reference to `vpx_codec_get_cx_data' /usr/local/lib/libavcodec.a(libvpxenc.o): In function `log_encoder_error': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:107: undefined reference to `vpx_codec_error' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:108: undefined reference to `vpx_codec_error_detail' /usr/local/lib/libavcodec.a(libvpxenc.o): In function `vpx_init': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:237: undefined reference to `vpx_codec_version_str' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:238: undefined reference to `vpx_codec_build_config' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:240: undefined reference to `vpx_codec_enc_config_default' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:357: undefined reference to `vpx_codec_enc_init_ver' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:387: undefined reference to `vpx_img_wrap' /usr/local/lib/libavcodec.a(libvpxenc.o): In function `log_encoder_error': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:107: undefined reference to `vpx_codec_error' /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:108: undefined reference to `vpx_codec_error_detail' /usr/local/lib/libavcodec.a(libvpxenc.o): In function `vpx_init': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:241: undefined reference to `vpx_codec_err_to_string' /usr/local/lib/libavcodec.a(libvpxenc.o): In function `vp9_init': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:651: undefined reference to `vpx_codec_vp9_cx_algo' /usr/local/lib/libavcodec.a(libvpxenc.o): In function `vp8_init': /root/ffmpeg-source/zlib-1.2.7/ffmpeg/libavcodec/libvpxenc.c:622: undefined reference to `vpx_codec_vp8_cx_algo' collect2: ld returned 1 exit status make: *** [x264] Error 1