Newest 'libx264' Questions - Stack Overflow
Les articles publiés sur le site
-
"Unknown encoder libx264" on Windows [migrated]
29 novembre 2012, par shampooI'm testing ClipBucket on a Windows XP system, and ClipBucket (open source video share) uses FFmpeg to convert videos. The final command it executes is (i changed it a little to make it compatible with the current FFmpeg):
D:\ffmpeg-snapshot-git\ffmpeg\ffmpeg.exe -i C: \wamp\www\chclip/files/conversion_queue/1352973741c353c.mp4 -f flv -vcodec libx2 64 -pre normal -r 25 -s 426x240 -aspect 1.775 -vf "pad=10:20:30:40:yellow" -ac odec libfaac -ab 128000 -ar 22050 C:\wamp\www\chclip/files/videos/13540939451e18 4.flv 2> C:\wamp\www\chclip/files/temp/13540939461c124.tmp 2>&1
And this is the response I get:
ffmpeg version 1.0.git Copyright (c) 2000-2012 the FFmpeg developers built on Nov 19 2012 16:42:42 with gcc 4.6.2 (GCC) configuration: libavutil 52. 8.100 / 52. 8.100 libavcodec 54. 73.100 / 54. 73.100 libavformat 54. 37.100 / 54. 37.100 libavdevice 54. 3.100 / 54. 3.100 libavfilter 3. 23.101 / 3. 23.101 libswscale 2. 1.102 / 2. 1.102 libswresample 0. 16.100 / 0. 16.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\wamp\www\chclip/files/conversion_que ue/1352973741c353c.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf53.21.0 Duration: 00:00:51.67, start: 0.000000, bitrate: 344 kb/s Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 426x240 [ SAR 1:1 DAR 71:40], 308 kb/s, 15 fps, 15 tbr, 15 tbn, 30 tbc Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 31 kb/s Metadata: handler_name : SoundHandler Unknown encoder 'libx264'
How can I get this libx264 working in Windows?
-
unknown encoder libx264 windows
28 novembre 2012, par shampooi am testing clip bucket on a windows xp system , clip bucket (open source video share) uses ffmpeg to convert videos, the final command clip bucket executes is (i changed it a little to make it compatible with the current ffmpeg):
D:\ffmpeg-snapshot-git\ffmpeg\ffmpeg.exe -i C: \wamp\www\chclip/files/conversion_queue/1352973741c353c.mp4 -f flv -vcodec libx2 64 -pre normal -r 25 -s 426x240 -aspect 1.775 -vf "pad=10:20:30:40:yellow" -ac odec libfaac -ab 128000 -ar 22050 C:\wamp\www\chclip/files/videos/13540939451e18 4.flv 2> C:\wamp\www\chclip/files/temp/13540939461c124.tmp 2>&1
and this is the response i get
ffmpeg version 1.0.git Copyright (c) 2000-2012 the FFmpeg developers built on Nov 19 2012 16:42:42 with gcc 4.6.2 (GCC) configuration: libavutil 52. 8.100 / 52. 8.100 libavcodec 54. 73.100 / 54. 73.100 libavformat 54. 37.100 / 54. 37.100 libavdevice 54. 3.100 / 54. 3.100 libavfilter 3. 23.101 / 3. 23.101 libswscale 2. 1.102 / 2. 1.102 libswresample 0. 16.100 / 0. 16.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\wamp\www\chclip/files/conversion_que ue/1352973741c353c.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf53.21.0 Duration: 00:00:51.67, start: 0.000000, bitrate: 344 kb/s Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 426x240 [ SAR 1:1 DAR 71:40], 308 kb/s, 15 fps, 15 tbr, 15 tbn, 30 tbc Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 31 kb/s Metadata: handler_name : SoundHandler Unknown encoder 'libx264'
how can i get this libx264 working in windows?
-
Where ffmpeg flags like CODEC_FLAG2_BPYRAMID are located ?
27 novembre 2012, par theateistI'm developing on using VS2010 with ffmpeg and tried the code from here. But VS says that it cannot find
CODEC_FLAG2_BPYRAMID+CODEC_FLAG2_MIXED_REFS+CODEC_FLAG2_WPRED+CODEC_FLAG2_8X8DCT+CODEC_FLAG2_FASTPSKIP; // flags2=+bpyramid+mixed_refs+wpred+dct8x8+fastpskip
X264_PART_I8X8+X264_PART_I4X4+X264_PART_P8X8+X264_PART_B8X8
avCodecContext.crf
Where are they located?
-
fps porblem when saving video in mp4 container
27 novembre 2012, par theateistWhen I decode frames from avi file and then decode them in x264 and save to mp4 file, the fps of the output file is always 12,800. Therefore the file is played very fast. But, when I save the encoded in h264 frames in avi format and not mp4, so the fps is as I wanted - 25.
What could be the problem? This is very urgent to me. I'm stuck with this and cannot continue with my project!
Here the code I wrote in VS2010:
#include "stdafx.h" #include "inttypes.h" extern "C" { #include "libavcodec/avcodec.h" #include "libavformat/avformat.h" #include "libavutil/avutil.h" #include
swscale.h> #include opt.h> #include swscale.h> #include imgutils.h> } #include using namespace std; int main(int argc, char* argv[]) { const char* inFileName = "C:\\000227_C1_GAME.avi"; const char* outFileName = "c:\\test.avi"; const char* outFileType = "avi"; av_register_all(); AVFormatContext* inContainer = NULL; if(avformat_open_input(&inContainer, inFileName, NULL, NULL) < 0) exit(1); if(avformat_find_stream_info(inContainer, NULL) < 0) exit(1); // Find video stream int videoStreamIndex = -1; for (unsigned int i = 0; i < inContainer->nb_streams; ++i) { if (inContainer->streams[i] && inContainer->streams[i]->codec && inContainer->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) { videoStreamIndex = i; break; } } if (videoStreamIndex == -1) exit(1); AVFormatContext* outContainer = NULL; if(avformat_alloc_output_context2(&outContainer, NULL, outFileType, outFileName) < 0) exit(1); // ---------------------------- // Decoder // ---------------------------- AVStream const *const inStream = inContainer->streams[videoStreamIndex]; AVCodec *const decoder = avcodec_find_decoder(inStream->codec->codec_id); if(!decoder) exit(1); if(avcodec_open2(inStream->codec, decoder, NULL) < 0) exit(1); // ---------------------------- // Encoder // ---------------------------- AVCodec *encoder = avcodec_find_encoder(AV_CODEC_ID_H264); if(!encoder) exit(1); AVStream *outStream = avformat_new_stream(outContainer, encoder); if(!outStream) exit(1); avcodec_get_context_defaults3(outStream->codec, encoder); // Construct encoder if(outContainer->oformat->flags & AVFMT_GLOBALHEADER) outStream->codec->flags |= CODEC_FLAG_GLOBAL_HEADER; outStream->codec->coder_type = AVMEDIA_TYPE_VIDEO; outStream->codec->pix_fmt = AV_PIX_FMT_YUV420P; outStream->codec->width = inStream->codec->width; outStream->codec->height = inStream->codec->height; outStream->codec->codec_id = encoder->id; outStream->codec->bit_rate = 500000; //outStream->codec->rc_min_rate = 600000; //outStream->codec->rc_max_rate = 800000; outStream->codec->time_base.den = 25; outStream->codec->time_base.num = 1; outStream->codec->gop_size = 250; // Keyframe interval(=GOP length). Determines maximum distance distance between I-frames outStream->codec->keyint_min = 25; // minimum GOP size outStream->codec->max_b_frames = 3;//16; // maximum number of B-frames between non-B-frames outStream->codec->b_frame_strategy = 1; // decides the best number of B-frames to use. Default mode in x264. outStream->codec->scenechange_threshold = 40; outStream->codec->refs = 6; // abillity to reference frames other than the one immediately prior to the current frame. specify how many references can be used. outStream->codec->qmin = 0;//10; outStream->codec->qmax = 69;//51; outStream->codec->qcompress = 0.6; outStream->codec->max_qdiff = 4; outStream->codec->i_quant_factor = 1.4;//0.71; outStream->codec->refs=1;//3; outStream->codec->chromaoffset = -2; outStream->codec->thread_count = 1; outStream->codec->trellis = 1; outStream->codec->me_range = 16; outStream->codec->me_method = ME_HEX; //hex outStream->codec->flags2 |= CODEC_FLAG2_FAST; outStream->codec->coder_type = 1; if(outStream->codec->codec_id == AV_CODEC_ID_H264) { av_opt_set(outStream->codec->priv_data, "preset", "slow", 0); } // Open encoder if(avcodec_open2(outStream->codec, encoder, NULL) < 0) exit(1); // Open output container if(avio_open(&outContainer->pb, outFileName, AVIO_FLAG_WRITE) < 0) exit(1); //close_o AVFrame *decodedFrame = avcodec_alloc_frame(); if(!decodedFrame) exit(1); AVFrame *encodeFrame = avcodec_alloc_frame(); if(!encodeFrame) exit(1); encodeFrame->format = outStream->codec->pix_fmt; encodeFrame->width = outStream->codec->width; encodeFrame->height = outStream->codec->height; if(av_image_alloc(encodeFrame->data, encodeFrame->linesize, outStream->codec->width, outStream->codec->height, outStream->codec->pix_fmt, 1) < 0) exit(1); av_dump_format(inContainer, 0, inFileName,0); //Write header to ouput container avformat_write_header(outContainer, NULL); AVPacket decodePacket, encodedPacket; int got_frame, len; while(av_read_frame(inContainer, &decodePacket)>=0) { if (decodePacket.stream_index == videoStreamIndex) { len = avcodec_decode_video2(inStream->codec, decodedFrame, &got_frame, &decodePacket); if(len < 0) exit(1); if(got_frame) { av_init_packet(&encodedPacket); encodedPacket.data = NULL; encodedPacket.size = 0; if(avcodec_encode_video2(outStream->codec, &encodedPacket, decodedFrame, &got_frame) < 0) exit(1); if(got_frame) { if (outStream->codec->coded_frame->key_frame) encodedPacket.flags |= AV_PKT_FLAG_KEY; encodedPacket.stream_index = outStream->index; if(av_interleaved_write_frame(outContainer, &encodedPacket) < 0) exit(1); av_free_packet(&encodedPacket); } } } av_free_packet(&decodePacket); } av_write_trailer(outContainer); avio_close(outContainer->pb); avcodec_free_frame(&encodeFrame); avcodec_free_frame(&decodedFrame); avformat_free_context(outContainer); av_close_input_file(inContainer); return 0; } -
Dump libx264 encoding parameters in ffmpeg
23 novembre 2012, par melihIs it possible to get a list of parameter values used in libx264 while encoding a stream? I am using a ffmpeg binary to encode.