linux下交叉编译带x264包的ffmpeg时出现下面的错误! 5C

图片说明有大神能看出来怎么回事吗?
我的配置是:./configure --enable-shared --enable-libx264 --enable-gpl --prefix=/home/hzz/ff/ffmpeg --enable-cross-compile --arch=arm --target-os=linux --cross-prefix=arm-linux- --cc=arm-linux-gcc --extra-cflags=-I/home/hzz/ff/x264/include --extra-ldflags=-L/home/hzz/ff/x264/lib --extra-libs=-ldl

4个回答

x264的头文件等路径是不是没有正确包含到编译环境中,错误就是找不到定义

对照这个看看:https://www.cnblogs.com/tla001/p/5893000.html
注意库是否齐全、编译器的配置和版本等。

应该是编译时候没有加上x264库,加上就好了。

这类问题,很大程度是你的库没有,库不全,自己指定库文件的地址,我尝试过,不知道为甚会不好使,所以后来我添加库,要么用命令行,或者就是使用软件中心,但是要注意的是,不同的linux系统,他们库的名字很可能就是不一样的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Python+OpenCV计算机视觉

Python+OpenCV计算机视觉

Linux下为FFmpeg配置x264编码器

按照网上的配置方法,我安装配置了x264,但是运行ffmp时提示“unknown encoder libx264”,/usr/local/lib和/usr/local/include下也有x264相关文件,但是仍然不生效,为FFmpeg重新配置x264的时候警告“using libx264 without pkg-config”,有没有完成这类配置的望指教下,谢谢! 参考文章:http://blog.csdn.net/asd987123456/article/details/27652023

关于x264交叉编译(linux to windows)的库在vs2005中链接失败的问题

环境: centos mingw gcc版本: [root@localhost x264]# x86_64-w64-mingw32-gcc -v Using built-in specs. COLLECT_GCC=x86_64-w64-mingw32-gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-w64-mingw32/4.9.2/lto-wrapper Target: x86_64-w64-mingw32 Configured with: ../configure --prefix=/usr --bindir=/usr/bin --includedir=/usr/include --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --with-gnu-as --with-gnu-ld --verbose --without-newlib --disable-multilib --disable-plugin --with-system-zlib --disable-nls --without-included-gettext --disable-win32-registry --enable-languages=c,c++,objc,obj-c++,fortran --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-threads=posix --enable-libgomp --target=x86_64-w64-mingw32 --with-sysroot=/usr/x86_64-w64-mingw32/sys-root --with-gxx-include-dir=/usr/x86_64-w64-mingw32/sys-root/mingw/include/c++ Thread model: posix gcc version 4.9.2 20141030 (Fedora MinGW 4.9.2-1.el6) (GCC) 配置: ./configure \ --prefix=../windows/x86_64 \ --enable-static \ --enable-pic \ --host=x86_64-w64-mingw32 \ --cross-prefix=x86_64-w64-mingw32- 结果: 1、生成的x264.exe能正常在windows中运行; 2、生成的libx264.a在vs2005的工程中不能被正常链接!!! 测试程序: #include "stdafx.h" #include "stdint.h" #include "x264.h" int _tmain(int argc, _TCHAR* argv[]) { x264_param_t param; x264_encoder_open(&param); return 0; } 1>Linking... 1>VideoEncoder.obj : error LNK2019: unresolved external symbol _x264_encoder_open_148 referenced in function _wmain 1>F:\personal\sourcecode\VideoEncoder\Debug\VideoEncoder.exe : fatal error LNK1120: 1 unresolved externals 分析: dumpbin /ALL libx264.a > 1.txt String Table Size = 0x539 bytes COFF SYMBOL TABLE 000 00000000 DEBUG notype Filename | .file encoder.c 002 00000000 SECT1 notype () Static | x264_slice_header_init tag index 00000000 size 00000000 lines 00000000 next function 00000000 004 000002D0 SECT1 notype () Static | mbcmp_init 005 000007D0 SECT1 notype () Static | sprintf 006 00000800 SECT1 notype () Static | snprintf 007 00000820 SECT1 notype () Static | x264_fdec_filter_row 008 00000F00 SECT1 notype () Static | x264_set_aspect_ratio.isra.3 009 00001020 SECT1 notype () Static | x264_encoder_thread_init 00A 00001050 SECT1 notype () Static | x264_nal_end 00B 00001190 SECT1 notype () Static | x264_encoder_encapsulate_nals.constprop.13 00C 00001360 SECT1 notype () Static | x264_encoder_frame_end.part.7 00D 00002870 SECT1 notype () Static | x264_slice_write 00E 00001400 SECT7 notype Static | x264_ue_size_tab 00F 000013EC SECT7 notype Static | x264_mb_chroma_pred_mode_fix 010 00006470 SECT1 notype () Static | x264_slices_write 011 000066B0 SECT1 notype () External | x264_encoder_open_148 012 00000000 SECTB notype Static | .rdata$.refptr.x264_levels 发现libx264.a中是x264_encoder_open_148,而vs2005链接的时候寻找的是_x264_encoder_open_148,因此产生了链接问题。 经查资料,发现是因为msvc在链接c函数时都会加"_",而在linux中使用mingw编译的库却没有加"_", 在configure时增加--extra-cflags="-fleading-underscore": No working C compiler found. Makefile:3: config.mak: 没有那个文件或目录 cat: config.h: 没有那个文件或目录 有谁知道解决办法?不胜感激!

海思系列的芯片能使用arm-linux-gcc编译的ffmpeg吗。

问题如题! 交叉编译工具arm-linux-gcc版本是gcc version 5.4.0 (Buildroot 2016.11) 还是只能用海思芯片对应的工具链来编译ffmpeg才能使用?

linux ffmpeg 运行提示错误,一段时间后程序异常退出

**问题现象:** ffmpeg 运行提示错误:“error while decoding mb“,但程序仍然正常运行,采集下来的视频能够正常播放。一段时间后程序异常退出。 **问题环境:** linux平台,安装了ffmpeg以及相关库(没有安装全部) **程序目的:** 使用命令通过ffmpeg程序采集音视频数据,并封装成mp4文件 /usr/local/ffmpeg/bin/ffmpeg -y -i rtsp://192.168.1.200:6000/liv/ch00_0 test.mp4 **ffmpeg安装的configure命令参数:** ./configure --prefix=/usr/local/ffmpeg --enable-libmp3lame --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-libfdk-aac --enable-libopencore-amrnb --enable-libx264 --enable-postproc --enable-ffserver --enable-ffplay__

mingw在win7下编译ffmpeg,出现错误

如题,mingw在win7下编译ffmpeg,出现错误,好头大阿~ ![图片说明](https://img-ask.csdn.net/upload/201508/03/1438585839_367575.jpg)

win7下cygwin编译ffmpeg编译错误

在cygwin下编译ffmpeg时出现如果错误 ,跪求大牛指点 LD libswscale/libswscale-4.so d:/worktool/android-ndk-r10c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld.exe: error: libavutil/libavutil.so:1:1: syntax error, unexpected '!', expecting $end d:/worktool/android-ndk-r10c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld.exe: error: libavutil/libavutil.so: not an object or archive collect2.exe: error: ld returned 1 exit status library.mak:97: recipe for target 'libswscale/libswscale-4.so' failed make: *** [libswscale/libswscale-4.so] Error 1 ffmpeg的configure的配置已经完成,配置的sh脚本如下: #!/bin/bash NDK=D:/worktool/android-ndk-r10c SYSROOT=$NDK/platforms/android-21/arch-arm TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 function build_one { ./configure \ --prefix=$PREFIX \ --enable-shared \ --disable-static \ --disable-doc \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-avdevice \ --disable-doc \ --disable-symver \ --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ --target-os=linux \ --arch=arm \ --enable-cross-compile \ --sysroot=$SYSROOT \ --extra-cflags="-Os -fpic $ADDI_CFLAGS" \ --extra-ldflags="$ADDI_LDFLAGS" \ $ADDITIONAL_CONFIGURE_FLAG } CPU=arm PREFIX=$(pwd)/android/$CPU ADDI_CFLAGS="-marm" build_one

在ubuntu下用ndk编译ffmpeg的问题

在ubuntu下用ndk编译ffmpeg的时候出现了这个错误: ![图片说明](https://img-ask.csdn.net/upload/201604/20/1461141039_452343.png) 这个是我的sh文件: make clean export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt export PLATFORM=$NDK/platforms/android-8/arch-arm export PREFIX=../ff-pure-onelib build_one(){ ./configure --target-os=linux --prefix=$PREFIX \ --enable-cross-compile \ --enable-runtime-cpudetect \ --disable-asm \ --arch=arm \ --cc=$PREBUILT/linux-x86/bin/arm-linux-androideabi-gcc \ --cross-prefix=$PREBUILT/linux-x86/bin/arm-linux-androideabi- \ --disable-stripping \ --nm=$PREBUILT/linux-x86/bin/arm-linux-androideabi-nm \ --sysroot=$PLATFORM \ --enable-gpl \ --enable-static \ --disable-shared \ --enable-nonfree \ --enable-version3 \ --enable-small \ --enable-zlib \ --disable-ffprobe \ --disable-ffplay \ --disable-ffmpeg \ --disable-ffserver \ --disable-debug \ --extra-cflags="-fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -marm -march=armv7-a" } build_one make make install $PREBUILT/linux-x86/bin/arm-linux-androideabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -L$PREFIX/lib -soname libffmpeg.so -shared -nostdlib -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavfilter/libavfilter.a libswresample/libswresample.a libavformat/libavformat.a libavutil/libavutil.a libswscale/libswscale.a libpostproc/libpostproc.a libavdevice/libavdevice.a -lc -lm -lz -ldl -llog --dynamic-linker=/system/bin/linker $PREBUILT/linux-x86/lib/gcc/arm-linux-androideabi/4.8/libgcc.a

编译pjsip 支持视频 ffmpeg

编译PJSIP时,如法检测到ffmpeg库,编译环境是windows使用mingw进行编译,如何才能正确编译啊![![图片说明](https://img-ask.csdn.net/upload/201612/12/1481514731_209890.png)图片说明](https://img-ask.csdn.net/upload/201612/12/1481514719_500049.png)

windows下修改vlc的ffmpeg库

我现在想修改vlc的ffmpeg库,就是我有个新的ffmpeg版本,编译完后想替换vlc本来的ffmpeg,再编译vlc,使其具有新特性,请问大牛们有什么好的办法。 编译vlc是参考的海狗哥的文档,higoge.github.io/2015/07/16/sm01/index.html 用的vlc2.2.1,cygwin下,ffmpeg是2.7,怀疑是ffmpeg版本问题,但我找不到合适版本,或者说不知道怎么找

ffmpeg x264 多线程问题

ffmpeg -i 9.avi -vcodec libx264 -map 0 9.264 -i 10.avi -vcodec libx264 -map 1 10.264 -i 11.avi -vcodec libx264 -map 2 11.264 使用上面的命令将三个文件同时转码为H264编码的文件,转码变的异常的慢,请各位帮忙看看是什么原因。我这样做主要是为了看看三个视频文件同时转码的速率与一个视频文件的转码速的对比,但现在这种结果肯定是不正常的。 另外,请教各位,对于同一个视频文件,输出的视频编码文件的质量同原视频文件一样,转码速度受哪些转码参数影响?

ffmpeg mingw32编译出来后使用率高

如题根据网上教程在windows下用mingw编译ffmpeg后,出现使用率高的问题,用ffplay播放本地视频使用率在16左右,用官网编译好的,播放使用率3左右,求大佬解释一下!

FFmpeg 编码 avcodec_open2 x264 memory leak

开发平台 : Mac OS X EI Capitan 10.11.4 Xcode Version 7.3 iOS 9.3 代码 : // x264 参数 double crf = 23; int qmin = 12;// 最小的量化因子。取值范围0-69。 int qmax = 18;// 最大的量化因子。取值范围13-69。 int keyint = 16; int scenecut = 0; // slow // ultrafast // superfast av_opt_set(codec_ctx->priv_data, "preset", "ultrafast", 0); // zerolatency // stillimage,fastdecode,zerolatency av_opt_set(codec_ctx->priv_data, "tune", "stillimage,fastdecode,zerolatency", 0); av_opt_set(codec_ctx->priv_data, "profile", "baseline", 0); char x264opts[512] = { 0 }; sprintf(x264opts, "crf=%f:scenecut=%d", crf, scenecut); av_opt_set(codec_ctx->priv_data, "x264opts", x264opts, 0); codec_ctx->codec_id = codec_id; codec_ctx->codec_type = AVMEDIA_TYPE_VIDEO; codec_ctx->pix_fmt = PIX_FMT_YUV420P; codec_ctx->width = in_width; codec_ctx->height = in_height; codec_ctx->bit_rate = bit_rate;// 比特率 codec_ctx->time_base = (AVRational){ 1, in_frames_per_secs }; codec_ctx->qcompress = 1;// x264 参数 qcomp codec_ctx->qblur = 1; codec_ctx->qmin = qmin;// 最小量化系数 codec_ctx->qmax = qmax;// 最大量化系数 codec_ctx->keyint_min = 2;// 关键帧的最小间隔帧数 codec_ctx->gop_size = keyint;// 关键帧的最大间隔帧数,x264 参数 keyint codec_ctx->scenechange_threshold = scenecut;// 场景变化检测阈值 codec_ctx->max_b_frames = 0;// optional param 可选参数,禁用B帧,,设置 x264 参数 profile 值为 baseline 时,此参数失效 codec_ctx->thread_count = 1; codec_ctx->ticks_per_frame = 2; /* codec_ctx->rc_max_rate = 700;// 最大码流,x264单位kbps,ffmpeg单位bps,x264 参数 vbv-maxrate codec_ctx->rc_min_rate = 300;// 最小码流 codec_ctx->rc_buffer_size = codec_ctx->rc_max_rate + codec_ctx->rc_min_rate;// x264 参数 vbv-bufsize */ codec_ctx->max_qdiff = 6;// 固定量化器因子允许的最大偏差,取值范围0-69,x264 参数 qpstep codec_ctx->me_range = 5; codec_ctx->refs = 3;// 运动补偿,x264 参数 ref codec_ctx->rc_strategy = FF_RC_STRATEGY_XVID;// 码率控制策略,宏定义,查API codec_ctx->dct_algo = FF_DCT_AUTO; codec_ctx->idct_algo = FF_IDCT_AUTO; codec_ctx->profile = FF_PROFILE_H264_BASELINE; codec_ctx->codec_tag = 0; } if(oformat->flags & AVFMT_GLOBALHEADER) { codec_ctx->flags |= CODEC_FLAG_GLOBAL_HEADER; } av_error = avcodec_open2(codec_ctx, codec, NULL); if (0 != av_error) { goto fail_label; } g_out_fmt_ctx = fmt_ctx; g_video_codec_ctx = codec_ctx; video_stream_index = fmt_ctx->nb_streams - 1; ret = 0; fail_label: if (0 != ret) { printf("%s", "fail"); if (codec_ctx) { avcodec_close(codec_ctx); codec_ctx = NULL; } if (fmt_ctx) { avformat_free_context(fmt_ctx); fmt_ctx = NULL; } } else { printf("%s", "success"); } codec_ctx = NULL; stream = NULL; codec = NULL; } void test_release_mw_recorder_controller() { video_stream_index = -1; if (g_video_codec_ctx) { avcodec_close(g_video_codec_ctx); g_video_codec_ctx = NULL; } if (g_out_fmt_ctx) { avformat_free_context(g_out_fmt_ctx); g_out_fmt_ctx = NULL; } } - (void)click_init_h264:(id)sender { NSString *format_name = @"flv";// flv、aac NSArray *doc_paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *doc_path = [doc_paths objectAtIndex:0]; NSString *filename = [doc_path stringByAppendingPathComponent:[NSString stringWithFormat:@"test_ffmpeg_encoder.%@", format_name]]; const char *format_name_str = format_name.UTF8String; const char *filename_str = filename.UTF8String; test_init_mw_recorder_controller(format_name_str, filename_str); } - (void)click_release_h264:(id)sender { test_release_mw_recorder_controller(); } 使用 Instruments 进行内存 leak 检测时,在调用 click_init_h264 方法后,就会出现 7个x264_malloc方法调用的memory leak的情况。 Instruments截图--->>>![图片说明](https://img-ask.csdn.net/upload/201605/26/1464240798_520440.png) 所以想请求各位有使用FFmpeg进行视频编码的高手,这是什么问题。是我的设置参数有问题,还是步骤有问题。请指点一下小弟。(小弟刚学FFmpeg,想写个iOS录制视频的例子,使用x264库进行视频编码,aac进行音频编码。现在可以正常编码,录制的视频也可以播。现在就差这个memory leak一直找不到解决办法)。 FFmpeg打印x264配置信息 : [libx264 @ 0x110060800] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2 [libx264 @ 0x110060800] profile Constrained Baseline, level 2.2 [libx264 @ 0x110060800] 264 - core 148 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=0 ref=3 deblock=0:-3:-3 analyse=0:0 me=dia subme=0 psy=1 psy_rd=2.00:0.70 mixed_ref=0 me_range=5 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=5 lookahead_threads=5 sliced_threads=1 slices=5 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=6 keyint_min=2 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=1.00 qpmin=12 qpmax=18 qpstep=8 ip_ratio=1.40 aq=0 我自己找到了一些规律,不懂是否正确。 已找到泄露的调用 av_error = avcodec_open2(codec_ctx, codec, NULL); 这句一调用就有x264_malloc memory leak 出来了。 而且是泄露的个数是可以计算出来,是codec_ctx->qmax - codec_ctx->qmin + 1个泄露。所以在想是不是x264设置参数的问题导致。 求大神。

linux下关于ffmpeg怎么将视频解码然后打包成rtp包发送出去。

做流媒体传输,需要用ffmpeg 将视频解码,然后通过rtp发送给vlc播放,但是怎么将得到的 一帧数据打包?直接用得到的AVFram结构体用rtp发送出去吗?求各位大神帮忙解惑。

ffmpeg:将视频保存或转换为.mp4格式时出错

<div class="post-text" itemprop="text"> <p>在我的托管服务器上,ffmpeg 是作为 php 模块安装的。我在将视频转换为 mp4格式时出错:</p> <blockquote> <p>Error while opening the encoder for output stream # 0: 0 - maybe incorrect parameters such as bit_rate, rate, width or height</p> </blockquote> <p>Ffmpeg 命令示例:</p> <blockquote> <p>/usr/bin/ffmpeg -y -i /home/afk/public_html/webroot/files/video.flv -vcodec libx264 -acodec libvo_aacenc /home/afk/public_html/webroot/files/video_text.mp4 2 &lt;&amp; 1</p> </blockquote> <p>我通过脚本中的 php exec ()函数运行这个命令:</p> ``` <p>exec ($command, $res);</p> <p>And here is the result that I get ($res array):</p> <p>Array ( [0] =&gt; ffmpeg version 2.6.8 Copyright (c) 2000-2016 the FFmpeg developers [1] =&gt; built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-16) [2] =&gt; configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --enable-bzlib --disable-crystalhd --enable-gnutls --enable-ladspa --enable-libass --enable-libdc1394 --enable-libfaac --enable-nonfree --disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libx264 --enable-libx265 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect [3] =&gt; libavutil 54. 20.100 / 54. 20.100 [4] =&gt; libavcodec 56. 26.100 / 56. 26.100 [5] =&gt; libavformat 56. 25.101 / 56. 25.101 [6] =&gt; libavdevice 56. 4.100 / 56. 4.100 [7] =&gt; libavfilter 5. 11.102 / 5. 11.102 [8] =&gt; libavresample 2. 1. 0 / 2. 1. 0 [9] =&gt; libswscale 3. 1.101 / 3. 1.101 [10] =&gt; libswresample 1. 1.100 / 1. 1.100 [11] =&gt; libpostproc 53. 3.100 / 53. 3.100 [12] =&gt; Input #0, flv, from '/home/afk/public_html/webroot/files/video.flv': [13] =&gt; Metadata: [14] =&gt; title : Title of the video [15] =&gt; encoder : Lavf56.25.101 [16] =&gt; Duration: 00:00:24.00, start: 0.000000, bitrate: 1364 kb/s [17] =&gt; Stream #0:0: Video: flv1, yuv420p, 500x500, 200 kb/s, 25 fps, 25 tbr, 1k tbn, 1k tbc [18] =&gt; [libx264 @ 0x1ec6720] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX [19] =&gt; Output #0, mp4, to '/home/afk/public_html/webroot/files/video_text.mp4': [20] =&gt; Metadata: [21] =&gt; title : Title of the video [22] =&gt; encoder : Lavf56.25.101 [23] =&gt; Stream #0:0: Video: h264, none, q=2-31, 128 kb/s, 25 fps [24] =&gt; Metadata: [25] =&gt; encoder : Lavc56.26.100 libx264 [26] =&gt; Stream mapping: [27] =&gt; Stream #0:0 -&gt; #0:0 (flv1 (flv) -&gt; h264 (libx264)) [28] =&gt; Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height )</p> ``` 将任何视频转换为此格式时都会发生同样的错误。我已经使用了 ffmpeg 文档中的示例,但仍然存在错误。请帮助理解和解决这个问题。 同时,从 flv 到 ogg 格式的转换工作正常,或者从图像到 flv 和 ogg 格式的视频创建。

FFMPEG+X264编码时强制强求I帧后视频质量下降明显

本人正在使用FFMPEG+x264进行编码,码率控制为CBR方式 ,默认情况下码率控制的还不错,视频质量也可以;现在遇到一个问题,只要强制要求编码器产生一个I帧(比如发生传输上的丢包时触发),则视频质量会非常明显的下降,而且无法恢复。

debug ffmpeg出现断错误

用codeblocks编译ffmpeg,可以正常运行,但是debug的时候出现断错误,请问大神们怎么解决?

FFMpeg:ffmpeg无法执行命令错误

<div class="post-text" itemprop="text"> <p>I am trying to transcode a video file of 1.2mb file uploaded to my website server via php/html upload, but I keep getting the error:</p> <p>PHP Fatal error: Uncaught exception 'Alchemy\BinaryDriver\Exception\ExecutionFailureException' with message 'ffmpeg failed to execute command '/usr/local/bin/ffmpeg' '-y' '-i' '/home/user/public_html/contents/videos/1490719990_MP4_360p_Short_video_clip_nature_mp4.mp4' '-async' '1' '-metadata:s:v:0' 'start_time=0' '-r' '16' '-b_strategy' '1' '-bf' '3' '-g' '9' '-vcodec' 'libx264' '-acodec' 'libmp3lame' '-b:v' '128k' '-refs' '6' '-coder' '1' '-sc_threshold' '40' '-flags' '+loop' '-me_range' '16' '-subq' '7' '-i_qfactor' '0.71' '-qcomp' '0.6' '-qdiff' '4' '-trellis' '1' '-b:a' '8k' '-ac' '1' '-pass' '1' '-passlogfile' '/tmp/ffmpeg-passes58dab05a323b6eknk4/pass-58dab05a32465' '/home/user/public_html/contents/videos/1490719990_MP4_360p_Short_video_clip_nature_mp4_22995.mp4'' in /home/user/public_html/app/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessRunner.php:100 Stack trace:</p> <h1>0 /home/user/public_html/app/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessRunner.php(72): Alch in /home/user/public_html/app/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Media/Video.php on line 168</h1> <p>Funny thing is that the same server is extracting frames and getting duration of the same file using ffprobe and ffmpeg.</p> <p>Here is the code I am using to transcode:</p> <pre><code>$ffmpeg = $ffmpeg = FFMpeg\FFMpeg::create(['timeout'=&gt;3600, 'ffmpeg.thread'=&gt;12, 'ffmpeg.binaries' =&gt; '/usr/local/bin/ffmpeg', 'ffprobe.binaries' =&gt; '/usr/local/bin/ffprobe']); $ffprobe_prep = FFMpeg\FFProbe::create(['ffmpeg.binaries' =&gt; '/usr/local/bin/ffmpeg', 'ffprobe.binaries' =&gt; '/usr/local/bin/ffprobe']); $ffprobe = $ffprobe_prep-&gt;format($video_file); $video = $ffmpeg-&gt;open($video_file); // Get video duration to ensure our videos are never longer than our video limit. $duration = $ffprobe-&gt;get('duration'); // Use mp4 format and set the audio bitrate to 56Kbit and Mono channel. // TODO: Try stereo later... $format = new FFMpeg\Format\Video\X264('libmp3lame', 'libx264'); $format -&gt; setKiloBitrate(128) -&gt; setAudioChannels(1) -&gt; setAudioKiloBitrate(8); $first = $ffprobe_prep -&gt;streams($video_file) -&gt;videos() -&gt;first(); $width = $first-&gt;get('width'); if($width &gt; VIDEO_WIDTH){ // Resize to 558 x 314 and resize to fit width. $video -&gt;filters() -&gt;resize(new FFMpeg\Coordinate\Dimension(VIDEO_WIDTH, ceil(VIDEO_WIDTH / 16 * 9))); } // Trim to videos longer than three minutes to 3 minutes. if($duration &gt; MAX_VIDEO_PLAYTIME){ $video -&gt;filters() -&gt;clip(FFMpeg\Coordinate\TimeCode::fromSeconds(0), FFMpeg\Coordinate\TimeCode::fromSeconds(MAX_VIDEO_PLAYTIME)); } // Change the framerate to 16fps and GOP as 9. $video -&gt;filters() -&gt;framerate(new FFMpeg\Coordinate\FrameRate(16), 9); // Synchronize audio and video $video-&gt;filters()-&gt;synchronize(); $video-&gt;save($format, $video_file_new_2); </code></pre> <p>I have contacted my host to no vital assistance. The only useful information they can provide me is that ffmpeg was compiled on the server with libmp3lame support.</p> <p>This code works perfect on localhost</p> <p>Any help as to why I may be getting the error and how to correct it is appreciated.</p> </div>

ffmpeg编码YUV图像成h264文件 关于时间戳pts的问题!

摄像头采集的每一帧YUV数据通过ffmpeg编码为h264文件 avcodec_encode_video2(video_stream->codec,&pkt,pFrame,&got _pkt)循环调用此函数编码每一帧图像 问题:编码时AVFrame的成员pts 该怎么赋值? 以及AVStream->time_base 与 AVStream->codec->time_base 表达的意思有差别吗? 这是雷博的代码: ![图片说明](https://img-ask.csdn.net/upload/201801/12/1515734452_61824.png) 讲解一下这个代码也可以,谢谢

ffmpeg x264编码帧率获取问题

我现在用安卓ffmpeg x264编码一个视频文件,怎么获得CPU的平均编码帧率呢。 主要是想测试CPU使用ffmpeg的编码帧率,有什么办法呢,我看ffmpeg命令行都是指定帧率的,找了好久没有解决方法,谢谢!!

2019 Python开发者日-培训

2019 Python开发者日-培训

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

设计模式(JAVA语言实现)--20种设计模式附带源码

设计模式(JAVA语言实现)--20种设计模式附带源码

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

java后台+微信小程序 实现完整的点餐系统

java后台+微信小程序 实现完整的点餐系统

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

2019 AI开发者大会

2019 AI开发者大会

玩转Linux:常用命令实例指南

玩转Linux:常用命令实例指南

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

Git 实用技巧

Git 实用技巧

Python数据清洗实战入门

Python数据清洗实战入门

使用TensorFlow+keras快速构建图像分类模型

使用TensorFlow+keras快速构建图像分类模型

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

程序员的算法通关课:知己知彼(第一季)

程序员的算法通关课:知己知彼(第一季)

MySQL数据库从入门到实战应用

MySQL数据库从入门到实战应用

机器学习初学者必会的案例精讲

机器学习初学者必会的案例精讲

手把手实现Java图书管理系统(附源码)

手把手实现Java图书管理系统(附源码)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

.net core快速开发框架

.net core快速开发框架

玩转Python-Python3基础入门

玩转Python-Python3基础入门

Python数据挖掘简易入门

Python数据挖掘简易入门

微信公众平台开发入门

微信公众平台开发入门

程序员的兼职技能课

程序员的兼职技能课

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

HoloLens2开发入门教程

HoloLens2开发入门教程

微信小程序开发实战

微信小程序开发实战

Java8零基础入门视频教程

Java8零基础入门视频教程

相关热词 c# 局部 截图 页面 c#实现简单的文件管理器 c# where c# 取文件夹路径 c# 对比 当天 c# fir 滤波器 c# 和站 队列 c# txt 去空格 c#移除其他类事件 c# 自动截屏
立即提问