ffmpeg+x264应该如何降低编码时延呢? [问题点数:100分,结帖人mstlq]

Bbs1
本版专家分:0
Blank
红花 2010年1月 C/C++大版内专家分月排行榜第一
2009年9月 C/C++大版内专家分月排行榜第一
2009年8月 C/C++大版内专家分月排行榜第一
Blank
黄花 2011年2月 C/C++大版内专家分月排行榜第二
2010年2月 C/C++大版内专家分月排行榜第二
2009年12月 C/C++大版内专家分月排行榜第二
2009年11月 C/C++大版内专家分月排行榜第二
Blank
蓝花 2009年10月 C/C++大版内专家分月排行榜第三
结帖率 100%
Bbs1
本版专家分:0
Blank
红花 2010年1月 C/C++大版内专家分月排行榜第一
2009年9月 C/C++大版内专家分月排行榜第一
2009年8月 C/C++大版内专家分月排行榜第一
Blank
黄花 2011年2月 C/C++大版内专家分月排行榜第二
2010年2月 C/C++大版内专家分月排行榜第二
2009年12月 C/C++大版内专家分月排行榜第二
2009年11月 C/C++大版内专家分月排行榜第二
Blank
蓝花 2009年10月 C/C++大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Blank
红花 2010年1月 C/C++大版内专家分月排行榜第一
2009年9月 C/C++大版内专家分月排行榜第一
2009年8月 C/C++大版内专家分月排行榜第一
Blank
黄花 2011年2月 C/C++大版内专家分月排行榜第二
2010年2月 C/C++大版内专家分月排行榜第二
2009年12月 C/C++大版内专家分月排行榜第二
2009年11月 C/C++大版内专家分月排行榜第二
Blank
蓝花 2009年10月 C/C++大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Blank
红花 2010年1月 C/C++大版内专家分月排行榜第一
2009年9月 C/C++大版内专家分月排行榜第一
2009年8月 C/C++大版内专家分月排行榜第一
Blank
黄花 2011年2月 C/C++大版内专家分月排行榜第二
2010年2月 C/C++大版内专家分月排行榜第二
2009年12月 C/C++大版内专家分月排行榜第二
2009年11月 C/C++大版内专家分月排行榜第二
Blank
蓝花 2009年10月 C/C++大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs1
本版专家分:0
ffmpeg+x264最简单的编码示例
一 <em>ffmpeg</em>不包含h264<em>编码</em>部分,要做h264<em>编码</em>需要额外引入<em>x264</em>库。二 最简单的h264 <em>编码</em>代码以及设置的一些基本参数int EncodeH264(const AVPacket *srcpkt,AVPacket *out_pkt){    if(srcpkt == NULL || out_pkt == NULL)    {        srs_error(&quot;pkt is null ...
ffmpeg调用x264编码器的过程分析
该文将以X264<em>编码</em>器为例,解释说明FFMPEG是怎么调用第三方<em>编码</em>器来进行<em>编码</em>的。     所有<em>编码</em>器和解码器都是在avcodec_register_all()函数中注册的。从中可以找到视频的H264解码器和X264<em>编码</em>器:   REGISTER_DECODER(H264, h264); REGISTER_ENCODER(LIBX264,
X264对摄像头编码,FFmpeg实时解码 (测试用)
用FFmpeg实时解码的测试代码,X264调用摄像头<em>编码</em>将数据复制到内存空间,解码器读取后直接解码,可以用来熟悉流程。
ffmpeg使用x264编码的配置+ ffmpegx264编码器参数完整对照表
转载自:扶凯[http://www.php-oa.com] 本文链接: http://www.php-oa.com/2009/03/09/<em>ffmpeg</em>_<em>x264</em>.html转帖:http://rhingheart.blogspot.com/2009/03/<em>ffmpeg</em><em>x264</em>-<em>ffmpeg</em>-<em>x264</em>.html注:讲实话,有关这些使用的文章真的不错,我们在这谢谢"SV的边界"本来我自己还想总结一下的。看来没有必要了,呵呵,在次多谢"SV的边界".下面原文<br /
ffmpeg x264编码参数
<em>ffmpeg</em> <em>x264</em><em>编码</em>参数对照表<em>x264</em>   <em>ffmpeg</em>   说明 命令行 字段 命令行 字段   qp qp_constant cqp   cqp 固定量化因子。取值范围0到51。 经常取值在20-40之间,越小质量 越好,要求的码率越高。0表示无损压缩 max-keyint i_keyint_max g gop_size 关键帧的最大...
降低延迟,视频直播APP要这样开发
近几年的视频直播APP市场可以说是格外的火热,可是在这个火热的背后,有一个一直困扰开发者的难题,那就是视频直播软件的延迟现象,<em>如何</em><em>降低</em>延迟呢?在开发时候要怎么做呢? 1、<em>编码</em>上的优化 在开发视频直播APP的时候,会用到一款叫Codec的<em>编码</em>器,这款<em>编码</em>器主要的功能就是根据特定的音频文件格式或流媒体格式、对数字音频数据实现压缩/解压缩。Codec会采用各种高效算法、尽量用
转:ffmpeg使用x264编码的配置+ ffmpegx264编码器参数完整对照表
原文链接: http://www.php-oa.com/2009/03/09/<em>ffmpeg</em>_<em>x264</em>.html 转帖:http://rhingheart.blogspot.com/2009/03/<em>ffmpeg</em><em>x264</em>-<em>ffmpeg</em>-<em>x264</em>.html 注:讲实话,有关这些使用的文章真的不错,我们在这谢谢"SV的边界"本来我自己还想总结一下的.看来没有必要了,呵呵,在次多谢"SV的边界"
X264实时编码,FFmpeg实时解码
开发环境:win7+VS2013+opencv3.0 两个线程,X264实时<em>编码</em>入队列,另一个线程FFmpeg从队列中取出数据实时解码。
测试x264编码器的低延时编码和非延时编码
测试<em>x264</em><em>编码</em>器的低延时<em>编码</em>和非延时<em>编码</em>
ffmpeg中的x264编码选项,对应关系
http://<em>ffmpeg</em>.org/<em>ffmpeg</em>-all.html#lib<em>x264</em>_002c-lib<em>x264</em>rgb <em>x264</em> H.264/MPEG-4 AVC encoder wrapper. This encoder requires the presence of the lib<em>x264</em> headers and library during configuration.
android平台,FFMPEG转码加速(一)-X264
一:打开NEON汇编 在ARMV7以上的芯片中,加入NEON汇编的功能,所以编译X264的时候,可以打开NEON ./configure --prefix=/home/arm_lib \         --disable-gpac \         --enable-static \ --enable-pic \ --cross-prefix=$ARM_ROOT/toolchain
FFmpeg x264编码b帧时时间戳,帧率等总结
1. 在进行FFmpeg API转码视频时,解码出来的视频帧是包含有frame->pict_type字段的,如果<em>编码</em>前不处理,<em>x264</em>会按照该类型强制<em>编码</em>。如果希望<em>x264</em>自动插入b帧<em>编码</em>,在<em>编码</em>前需要将frame->pict_type设置为AV_PICTURE_TYPE_NONE。<em>x264</em><em>编码</em>出来后的帧类型可以通过AVCodecContext的coded_frame成员来判断。 2.
FFMPEG 支持 X264编码(windows 版本)
FFMPEG 支持 X264<em>编码</em>(windows 版本) FFmpeg version UNKNOWN, Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: --prefix=/f/usr/<em>ffmpeg</em>_build413 --enable-memalign-hack --enable -gpl --enable-nonfree --enable-shared --enable-libmp3lame --enable-libamr-nb --e nable-libamr-wb --enable-libfaac --enable-libfaad --enable-lib<em>x264</em> --enable-libx vid --enable-avisynth libavutil 50. 3. 0 / 50. 3. 0 libavcodec 52.25. 0 / 52.25. 0 libavformat 52.32. 0 / 52.32. 0 libavdevice 52. 2. 0 / 52. 2. 0 libswscale 0. 7. 1 / 0. 7. 1 built on Apr 13 2009 22:45:09, gcc: 4.3.2 At least one output file must be specified
利用X264编码yuv格式视频帧,利用ffmpeg解码h264视频帧
前面一篇博客介绍在centos上搭建点击打开链接<em>ffmpeg</em>及<em>x264</em>开发环境。下面就来问个例子:  1、利用<em>x264</em>库将YUV格式视频文件<em>编码</em>为h264格式视频文件  2、利用ffmpeh库将h264格式的视频文件解码为yuv格式视频文件  解码和<em>编码</em>前后对文件大小进行比较,如图:    其中yuv420p.yuv为原始文件,大小77M        encode.h264为H264<em>编码</em>后的视频
ffmpeg x264多线程编码测试
测试环境 组内测试机,4核,1.8GHZ,内存2G 测试过程 默认线程设置,<em>ffmpeg</em>的AVCodecContext中thread_count为1 测试结果:cpu占用100%,转码时间9分48秒 线程设置:thread_count为4,thread_type为FRAME类型 测试结果:cpu占用250%,4个cpu平均使用率20%多,转码时间4分28秒 结果总结 x26
ffmpeg x264编码打开编码器失败 返回-1
此时调用avcodec_open2() 返回 -1 console打印错误: [lib<em>x264</em> @ 02ed6880] broken <em>ffmpeg</em> default settings detected [lib<em>x264</em> @ 02ed6880] use an encoding preset (e.g. -vpre medium) [lib<em>x264</em> @ 02ed6880] prese
linux下配置ffmpeg(支持x264编码
在网上找了好多配置<em>ffmpeg</em>的教程,大多操作复杂。 我写了一个脚本,给它执行权限了(chmod +x install_<em>ffmpeg</em>.sh),一键式安装<em>ffmpeg</em>环境,配置了<em>x264</em><em>编码</em>库,希望有人用得到。
ffmpeg调用libx264编码高级选项
在命令行中输入: <em>ffmpeg</em> -h -encoder=lib<em>x264</em> 会输出一下信息: Encoder lib<em>x264</em> [lib<em>x264</em> H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10]: Threading capabilities: no Supported pixel formats: yuv420p yuvj420p yuv422
WebRTC VideoEngine综合应用示例(三)——集成X264编码ffmpeg解码
本系列目前共三篇文章,后续还会更新 WebRTC VideoEngine综合应用示例(一)——视频通话的基本流程 WebRTC VideoEngine综合应用示例(二)——集成OPENH264编解码器 WebRTC VideoEngine综合应用示例(三)——集成X264<em>编码</em>和<em>ffmpeg</em>解码 关注下方公众号,回复“webrtc视频通话”,查看源码地址,是一个可以脱离webrtc那个大项目...
使用ffmpegx264库强制编出关键帧(I帧)
使用<em>ffmpeg</em>、<em>x264</em>库强制编出关键帧(I帧)背景当h264数据在使用udp传输时,丢包是一件很常见的事情,当接收端丢包发生后,<em>应该</em>通知发送端,让发送端立刻重新发送一个关键帧。此时就需要<em>编码</em>器无视关键帧间隔立刻编出一个关键帧。那么怎么让<em>编码</em>器立刻编出关键帧呢?接下来就列举常用的两种<em>编码</em>器<em>ffmpeg</em>、<em>x264</em>重编出关键帧的方法。<em>编码</em>库的使用方法在网上有很多文章。本文假设读者已经了解<em>编码</em>库的使用,
利用FFmpeg+x264将iOS摄像头实时视频流编码为h264文件
一、编译<em>x264</em>库 <em>如何</em>编译<em>x264</em>源码获取支持iOS平台的静态库,可参考我的文章《编译iOS平台上使用的X264库》 二、编译FFmpeg库 <em>如何</em>编译FFmpeg源码获取支持iOS平台的静态库,可参考我的博客园上的文章《实战FFmpeg--编译iOS平台使用的FFmpeg库(支持arm64的FFmpeg2.6.2)》 三、将<em>x264</em>库编译进FFmpeg库 通过步骤二
ffmpeg流式播放时如何减少延迟
You may be able to decrease initial "startup" latency by specifing that I-frames come "more frequently" (or basically always, in the case of <em>x264</em>'s zerolatency setting), though this can increase fra
x264 ffmpeg编解码参数笔记
X264 <em>ffmpeg</em> 1、码率: 码流(Data Rate),是指视频文件在单位时间内使用的数据流量 三种可选的码率控制方法(bitrate, CQP,CRF), 选择的顺序是 bitrate > QP > CRF QP是固定量化参数,bitrate是固定文件大小,crf则是固定“质量",abr(ABR平均码率,VBR是动态码率。CBR是静态码率。),crf(限制码率),cqp(固定质量) –qp, –bi
OpenCV,ffmpeg与libx264进行H.264编码(CPU与GPU版)
CPU版: 目前opencv中做h264<em>编码</em>实际上是向下调用<em>ffmpeg</em>的,而<em>ffmpeg</em>中则又是调用lib<em>x264</em>,于是这也就涉及到了lib<em>x264</em>,<em>ffmpeg</em>和opencv三者之间的联合编译 一、lib<em>x264</em> 我用的系统是centos6.8,系统内默认安装的有lib<em>x264</em>的,但是版本比较低,与<em>ffmpeg</em>不兼容,这里需要先卸载掉原先的<em>x264</em>再安装较新的版本,我用的版本
ubuntu和arm平台下的ffmpegx264相关库的移植
本文讲解在ubuntu和arm平台下的<em>ffmpeg</em>和<em>x264</em>相关库的移植,最终实现使用<em>ffmpeg</em>进行H.264<em>编码</em>。 1、源码下载:       本文使用的相关库已经上传,可以从本地址下载本次编译所使用的库:http://download.csdn.net/detail/yxtouch/7527291 或者本个链接:http://onersw9j1.bkt.clouddn.
X264性能优化
一、X264性能分析测试环境测试环境:Intel Pentium4 3.00GHz  (双核cpu),开启超线程内存:    DDR 1.00G操作系统: Windows sever 2003 Enterprise Edition分析软件: Intel(R) VTune(TM) Performance Analyzer 8.0(评估版lic)编译软件: VC71+nasm0.98Bus Speed...
树莓派x264ffmpeg编译(用于支持GPU硬件编解码)
FFmpeg是一套开源的音视频编解码库,有非常强大的功能,包括视频采集功能、视频格式转换等。视频编解码是一个非常消耗系统资源的过程,而树莓派自带了H.264的硬件编解码器,本文讲介绍在树莓派上配置FFmpeg使其支持硬件编解码器并编译安装的过程,所使用到的所有库文件,包括<em>x264</em>和<em>ffmpeg</em>源码及其配置文件,均上传至CSDN下载中心,下载地址如下: <em>x264</em>源码及其配置文件下载:点击打开链接
x264编码指南——码率控制
<em>x264</em>是一个 H.264/MPEG4 AVC <em>编码</em>器,本指南将指导新手<em>如何</em>创建高质量的H.264视频。     对于普通用户通常有两种码率控制模式:crf(Constant Rate Factor)和Two pass ABR。码率控制是一种决定为每一个视频帧分配多少比特数的方法,它将决定文件的大小和质量的分配。     如果你在编译和安装lib<em>x264</em> 方面需要帮助,请查看ffmpe
实现 V4L2视频采集与 FFMPEG 编码YUYV 数据 为H264(2)
上一篇写的是保存摄像头数据为YUYV格式的文件链接:http://blog.csdn.net/u011186256/article/details/79289989本篇文件介绍 FFMPEG <em>编码</em>YUYV 数据 为H2641、Ubuntu安装<em>x264</em>与FFmpegroot权限运行./configure --enable-shared --disable-asm下载last_stable_<em>x264</em>....
ffmpegx264移植到android教程
1,准备ubuntu机器或者虚拟机,本教程采用的镜像是:ubuntu-16.04.4-desktop-amd64.iso 2,准备资源:     ndk,直接到android官网下载就可以。         本次用的版本是:android-ndk-r10e-linux-x86_64.zip     <em>ffmpeg</em>:         官网:http://www.<em>ffmpeg</em>.org/         ...
【FFMPEG】ffmpeg 中添加264支持
<em>ffmpeg</em> 中带有264的解码,没有<em>编码</em>,需要添加<em>x264</em>; 参考百度上的“windows_<em>ffmpeg</em>编译 ” 文档 下载<em>ffmpeg</em> 代码合<em>x264</em>代码, <em>ffmpeg</em> 代码:http://<em>ffmpeg</em>.org/ <em>x264</em>代码:http://www.videolan.org/developers/<em>x264</em>.html 相关资源获取的地方: http:/
H264编码系列之x264编码延迟
参考 <em>x264</em>帧<em>编码</em>延迟 研究了一下<em>x264</em><em>编码</em>延时. 方法是加log在<em>x264</em>.c static int encode( <em>x264</em>_param_t *param, cli_opt_t *opt ) { ... i_frame_size = encode_frame( h, opt-&amp;gt;hout, &amp;amp;pic,...
ffmpeg可用的x264 & mp3代码库
git clone git://git.videolan.org/<em>x264</em>.git http://sourceforge.net/projects/lame/files/lame/ <em>ffmpeg</em>自身不带<em>x264</em>、mp3库,必须下载编译使用 下载后,直接./configure、make、makeinstall <em>x264</em>、libmp3lame的.so 以及 .a 放到usr/lib下(可能存在...
ffmpeg+x264如何编出动态gop的视频流
一 一般<em>编码</em>h264的时候需要设置gop size, group of picture size,意思是多少帧出现一个I帧。这个值设置之后,<em>编码</em>器出帧就会严格按照这个间隔来的,那有人想要在画面运动剧烈的时候尽可能<em>降低</em>gop,在静态的时候增大gop,怎样做呢?看看<em>x264</em>源码AVFrame结构体:  uint8_t *data[AV_NUM_DATA_POINTERS];//存放yuv数据的指针,具...
编译带x264的FFMPEG
业务需要,需要在Linux系统下编译带<em>x264</em><em>编码</em>的<em>ffmpeg</em>工程,略踩小坑,过程记录如下。首先下载源码,<em>ffmpeg</em>: http://www.<em>ffmpeg</em>.org/download.html<em>x264</em>:http://download.videolan.org/<em>x264</em>/snapshots/yasm:http://yasm.tortall.net/Download.html1. 编译yasmyas...
Android编译FFmpeg4.0.2添加H264编码(FFmpeg编译二)
目前测试发现使用NDK16以上的版本编译不了FFmpeg,原因未知。 我使用的系统ubuntu18.04,先编译FFmpeg,成功之后再添加X264的库。 编译FFmpeg的脚本如下: #!/bin/bash #!/bin/bash NDK=/home/hong/Public/android-ndk-r14b SYSROOT=$NDK/platforms/android-21/arch-ar...
使用ffmpeg将视频转为x264编码的mp4文件
昨天刚遇到的问题,网页播放器播放linux服务器上的mp4文件时只有进度条在动,画面全黑,首先想到的就是网页播放器的解码器是否不支持该mp4文件的<em>编码</em>。尝试了下,确实是这个问题,并且转码后文件大小从400M减小到100M,感觉这里是一个系统可优化点。 先说下主要的命令吧: 我使用的<em>ffmpeg</em>版本为<em>ffmpeg</em>-3.3.3-win64-static。 linux上<em>ffmpeg</em>的安装方法参考:
FFmpeg 编译以及添加X264 支持 android
网上抄的一个脚本,一直提示:No working C compiler found. 在网上找了很久,把脚本的前后空格都删除了还是不行,后来看到可以查看日志 gedit config.log 看到 ./configure: 行 158: /home/hong/Public/android-ndk-r14b/toolchains/arm-linux-androideabi-4.8/prebuil...
ffmpeg /x264视频流编解码末尾丢帧问题分析和解决
一:问题 int avcodec_encode_video2 ( AVCodecContext *  avctx, AVPacket *  avpkt, const AVFrame *  frame, int * 
降低视频流时延的方法
在摄像头rtsp流的时候,<em>如何</em><em>降低</em>视频的<em>时延</em>问题。我主要采取减少内存拷贝,提高封装效率角度着手,将<em>时延</em><em>降低</em>到140ms左右。如果你有更好的方法,欢迎探讨...
x264源代码简单分析:x264命令行工具(x264.exe)
本文简单分析<em>x264</em>项目中的命令行工具(<em>x264</em>.exe)的源代码。该命令行工具可以调用lib<em>x264</em>将YUV格式像素数据<em>编码</em>为H.264码流。
WebRTC 集成X264编码ffmpeg解码
转载:http://blog.csdn.net/nonmarking/article/details/47958395 重新封装X264<em>编码</em>功能 首先当然还是要下载X264源码编译出相应的库以供调用。在windows下使用mingw进行编译,再使用poxports工具导出库,最后得到lib<em>x264</em>.dll和lib<em>x264</em>.lib,同时把<em>x264</em>.h和<em>x264</em>_config.h总共四
Ubuntu下编译ffmpegx264编码
4. 获取最新版本的<em>x264</em>并编译安装,我们在这里通过git命令获取:   cd~/ git clone git://git.videolan.org/<em>x264</em>.git     开始编译并安装 cd<em>x264</em> ./configure –enable-shared make sudo checkinstall –f
ffmpeg输出x264的CBR流或者文件
CBR(Constant Bit Rate)是以恒定比特率方式进行<em>编码</em>,有Motion发生时,由于码率恒定,只能通过增大QP来减少码字大小,图像质量变差,当场景静止时,图像质量又变好,因此图像质量不稳定。这种算法优先考虑码率(带宽)。 这个算法也算是码率控制最难的算法了,因为无法确定何时有motion发生,假设在码率统计窗口的最后一帧发生motion,就会导致该帧size变大,从而导致统计的码率大
导致解码延时/丢帧的语法元素—H264
//***************************可能导致解码延时的语法元素****************************// VUI 中有这样的信息:       num_reorder_frames 是用于标示 出 显示的时候需要缓冲多少帧 以方便排序,比如IPP序列 是不需要缓冲,或者重排序的,如果缓冲太多帧会造成延迟。当然这个也有一个最大值,可以从 profi
x264源代码简单分析:宏块编码(Encode)部分
本文记录<em>x264</em>的 <em>x264</em>_slice_write()函数中调用的<em>x264</em>_macroblock_encode()的源代码。<em>x264</em>_macroblock_encode()对应着<em>x264</em>中的宏块<em>编码</em>模块。宏块<em>编码</em>模块主要完成了DCT变换和量化两个步骤。函数调用关系图宏块<em>编码</em>(Encode)部分的源代码在整个<em>x264</em>中的位置如下图所示。单击查看更清晰的图片宏块<em>编码</em>(Encode)部分的函数调用关系
X264参数之zerolatency的分析
分析<em>x264</em>中设置zerolatency后影响到的各参数意义。
FFmpeg视频转码技巧之二次编码
在转码的应用场景中,有时候我们非常在意目标文件的大小,在这个前提之下,再力求画质的完美。希望通过一种方法能够“精确”计算关键的<em>编码</em>参数,而不想一次一次的试。有办法吗? 答案是肯定的。这里可以用到二次<em>编码</em>(two-pass encoding)的技术。关于二次<em>编码</em>,百度百科上是这么说的: 二次<em>编码</em>VBR, (2-pass VBR), 在第一次其实是检测收集运动啊亮度等相关数据,这样在第二次<em>编码</em>的时...
使用GPU加速H.264编码分析
继前面的“GPGPU”和“CUDA和OpenCL”的简介后,接下来分析一个具体的使用案例:是否可以用GPU搭建一个高性能的H.264编解码服务器? 设想一个简单的需求: 把其他<em>编码</em>的视频转换为指定码率的H.264;在转换过程中做一些简单的处理(例如增删水印、字幕的处理、声音的处理等);需要封装成指定的一种container格式,比如mp4或mkv。   <em>ffmpeg</em>
编译ffmpeg 集成x264
1、环境配置,按照这篇:http://blog.csdn.net/gongxp123456/article/details/52879976 2、下载下x64源代码: 进入命令行: c: cd \<em>ffmpeg</em> git clone git://git.videolan.org/<em>x264</em>.git 3、编译<em>x264</em> 进入VC2015 x54命令含,再进入msys2终端界面:
在Ubuntu下FFmpeg编译,支持x264和x265。
在Ubuntu下FFmpeg编译,支持<em>x264</em>和x265。 Ubuntu 12.04 FFmpeg 2.1 Release 注意: cmake要升级要2.8.8 yasm要升级到1.2.0 0000. 资料: http://stackoverflow.com/questio ... p4-with-h-265-codec FFmpeg supports encodin
关于x264编码帧,单个nalu还是多个nalu的问题
视频帧分为:一个视频帧只有一个slice 和一个视频帧由多个slice组成两种情况。 如图所示: 一个视频帧只有一个slice 一个视频帧由多个slice组成 对于单个cpu来说,我们要让<em>编码</em>帧都是单个slice,而非多个slice的话,可以设置264<em>编码</em>的线程参数param->i_threads = 1, 就可以保证单个slice。 而对于多个cpu来说,因为我用
X264的参考帧设置
1、(以r1884为例) -r, –ref   Reference Frame,即参考帧,决定最多可能的参考帧数。 有效范围值1~16。该值越大,压缩率越高;但大于6后对压缩率的贡献很低(可以看压制完后<em>x264</em> [info] ref 项,例如上图P L0那行,71.0%表示P帧参考自己,4.2%表示参考隔壁1个帧的百分比,16.1%代表参考了2个的百分比,以此类推),而速度的损失则是很
x264中的PSNR计算及其打印
2010-01-22 21:39 <em>x264</em>在设置参数后,如果不进行psnr的设置,在编译的时候是不会打印出来信噪比的信息的,这里,只要在参数里面进行设置一下,如:--psnr,就可以打印出YUV的峰值信噪比的信息来,这里就把,在程序中的信噪比的计算和相关函数在这里列举出来: 1.这里是先定义求解信噪比的函数: static float <em>x264</em>_psnr( int64_t i
x264代码学习笔记(四):B帧是何时被确定帧类型的?怎样进行编码的?
       在上一篇博客《<em>x264</em>代码学习笔记(三):<em>x264</em>_slicetype_decide函数》里,在解读<em>x264</em>_slicetype_decide函数过程中,一直有这样的疑问,即B帧是何时被确定类型的,具体是怎样将视频帧由输入序列(播放序列)转换为<em>编码</em>序列呢?        为求解答案,我书写了一个实例进行代码调试,如下所示: #include &amp;lt;assert.h&amp;gt; #...
降低FFmpeg的解码延时
     不知大家有没有发现FFmpeg长时间解码会出现延时增大(特别是在丢包的情况下)?如果在播放本地文件,这个问题是没有影响的。但是如果播放的是实时流,则图像的延时就越来越大。本人是做安防监控的,很多招标项目对解码器的图像延时都有要求:不能高于250毫秒。所以,对实时性要求高的场合,要尽量<em>降低</em>图像的延时。     网络摄像头从采集图像到通过网络传输到客户端解码的过程中都会产生延时,一般延时有...
x264-h264编码库的使用demo
上一篇写了<em>x264</em>库的编译安装、测试,那么这个库怎么为自己所用呢?在下载好的<em>x264</em>源码top目录下,使用了 ./<em>x264</em>这个小程序进行了例子验证,下面分析下这个<em>x264</em>.c 文件,看看如果我们要在代码中使用<em>x264</em>库<em>编码</em>,该怎么做:本来想慢慢自己分析下,却已经百度到相关的内容,权且当个拿来主义者,毕竟,还是不要重复造轮子的好:下面附上别人的解析链接:(相当齐全)《<em>x264</em>代码剖析(一):图文详解...
V4L2视频采集与H264编码3—X264移植
    计划将YUV数据<em>编码</em>成H264视频,中间需要用到X264<em>编码</em>器。X264<em>编码</em>器的源码分析参考了雷神的博客x64源码分析 ,这里将介绍<em>如何</em>将<em>x264</em><em>编码</em>库移植到ARM开发板上。最新的<em>x264</em>代码可以在<em>x264</em>源码下载地址 下载,如果是在linux环境下,可以使用下面命令直接克隆一份代码# git clone http://git.videolan.org/git/<em>x264</em>.git    如果...
x264的1080p编码输入与输出信息
INPUT: fengshaoqi@fengshaoqi-Lenovo:~/文档/测试文件/1080$ <em>x264</em> --vbv-bufsize 2000 --bitrate 2000 -o rushhour.mkv rush_hour.y4m fengshaoqi@fengshaoqi-Lenovo:~/文档/测试文件/1080$ ./<em>x264</em> --fullhelp x26
X264编码2 实时编码(USB摄像头)
    上一篇我们介绍了X264的<em>编码</em>,但是只能对本地文件<em>编码</em>,这里讨论怎么实时的读取摄像头文件并<em>编码</em>。    利用opencv实时读取摄像头,可以参考博客:点击打开链接。这里不做过多介绍。    至于<em>编码</em>流程,和上篇一样,没有改变。我们了解下X264<em>编码</em>器怎么直接读取摄像头的一帧图像就行。    opencv打开摄像头时,一帧一帧的播放,每一帧都由frame指定:capture &amp;gt;&amp;gt;...
X264实时对USB摄像头编码(H264)
摄像头是USB摄像头,开发环境是VS2013+opencv3.0,采集出的数据实时<em>编码</em>为H264
在Mac上编译FFMpeg并添加x264支持
之前写过一篇在Android Studio中使用cmake编译FFmpeg,主要是在为了在android中使用FFmpeg进行视频的编解码,在使用过程中,在<em>编码</em>h264是发生错误,查找原因是没有添加<em>x264</em>支持。现在编译能够进行h264编译的FFmpeg。 前期准备 1.可以在<em>x264</em>官网下载,也可以直接git clone http://git.videolan.org/git/<em>x264</em>....
x264强制编一个关键帧
为了使<em>x264</em>在<em>编码</em>过程中强制编出一个IDR帧,可以通过更改<em>x264</em>_picture_t pic中的一个成员变量i_type,在<em>编码</em>一帧之前,将pic.i_type赋值为X264_TYPE_IDR即可。 int <em>x264</em>_encoder_encode( <em>x264</em>_t *, <em>x264</em>_nal_t **pp_nal, int *pi_nal, <em>x264</em>_picture_t *pic_in, <em>x264</em>
YUYV数据—X264编码H264视频实例
<em>x264</em>库的编译可以见之前博客:http://blog.csdn.net/li_wen01/article/details/53571929 在PC上编译X264,可以直接执行下面三条命令: ./configure --enable-shared make make install /*====================================================...
X264压缩丢帧问题
使用<em>x264</em> avcodec_decode_video2()解码后,avi录像丢了4帧。分析原因得知,在解码的过程中,分析该帧图像如果不是关键帧,那么解压就会丢弃该帧,本来想在压缩的时候就直接设置参数属性没有B帧数据的那种属性,可是没有找到,后来只能在解压的时候想办法了。 while (av_read_frame(fmt_ctx, &pkt) >= 0)      {         if(
最简单的视频编码器:编译(libx264,libx265,libvpx)
最近研究了一下几种常见的视频<em>编码</em>器:<em>x264</em>,x265,vpx。本文简单记录一下它们的编译方法。 <em>x264</em>,x265,vpx这三个开源的视频<em>编码</em>器可以说是当今“最火”的视频<em>编码</em>器。<em>x264</em>现在占据着H.264视频<em>编码</em>器的半壁江山;x265则是目前实现H.265标准最好的开源视频<em>编码</em>器,并且在未来可能接替<em>x264</em>;而vpx则是Google推出的开源视频<em>编码</em>器,它提出的VP9<em>编码</em>标准的性能也不错。
ffmpeg+x264编码mp4格式的视频出现视频帧率很大,导致视频无法播放的问题
最新用<em>ffmpeg</em>+<em>x264</em><em>编码</em>视频,之前使用老版本的<em>ffmpeg</em><em>编码</em>视频文件没有问题,但是换了最新的版本之后(<em>ffmpeg</em>版本号2.8.2),出现了<em>编码</em>出来的视频帧率特别大的问题。 找了很久,终于解决了,在这里记录一下探索过程。 首先,我设置的视频的帧率是25帧/s,但是<em>编码</em>出来的视频帧率则是几千,如下图所示 可以看到上图的帧率和码率都是非法的值,这个是为什么呢? 下面是解决过程。 首
ffmpeg多种码率控制方式的实现
<em>ffmpeg</em>是我们进行视频编解码常用的工具,而对于<em>ffmpeg</em>中<em>编码</em>时对码率的控制方式一直没找合适的教程,无意中在stackoverflow上发现了答案,在此进行总结备忘。 视频<em>编码</em>器常用的码率控制方式包括abr(平均码率),crf(限制码率),cqp(固定质量),<em>ffmpeg</em>中AVCodecContext显示提供了码率大小的控制参数,但是并没有提供其他的控制方式。<em>ffmpeg</em>中码率控制方式分为
x264 - 高品质 H.264 编码
H.264 / MPEG-4 AVC 是优秀的视讯<em>编码</em>格式 就目前已成熟的视讯<em>编码</em>格式而言,H.264的压缩率是最佳的。 压缩率极高,可以只用很低 bitrate 提供堪用画质。 而 <em>x264</em> 为免费开放原始码的 H.264 / MPEG-4 AVC <em>编码</em>器, 其<em>编码</em>效率与商业 H.264 <em>编码</em>器相比而有过之而不及。 例如名声响亮的商业影音转换工具 - TMPGEnc, 起初 TM
FFmpeg XAVC实现/XAVC编码标准调研 (1)
背景     XAVC是索尼与2012年10月30日发布的一种视频记录<em>编码</em>配置,但是理解XAVC并不是一种新的<em>编码</em>标准,它完全遵循于H.264/MPEG-4 AVC<em>编码</em>标准,在其基础上限制和规范了<em>编码</em>的配置,使其能够更好的适应于手持摄像设备、广播电视领域。     从CCTV发布的《中央广播电视总台4K超高清电视节目制播技术规范(暂行)》,XAVC-I Intra Class 300/480将...
centos 7下 带264编码ffmpeg安装
1, 到http://www.videolan.org/developers/<em>x264</em>.html下载264<em>编码</em>库last_<em>x264</em>.tar.bz2tar -xjf last_<em>x264</em>.tar.bz2 cd <em>x264</em>-snapshot-20180520-2245/./configure --prefix=/usr/local/<em>x264</em> --enable-shared --enable-static ...
X264的编译与使用
X264的编译        X264的编译很久都没弄好(2013.1),现在专门写一篇学习X264的编译。<em>x264</em>的编译步骤如下:# 搭建mingw+msys环境,详见:http://blog.csdn.net/evsqiezi/article/details/8958308。# 安装yasm,执行dnf install -y  yasm(或者wget http://www.tortall.ne...
主流开源编解码器Xvid,x264,ffmpeg 性能对比(转)
Xvid是基于MPEG4协议的编解码器,<em>x264</em>是基于H.264协议的<em>编码</em>器,<em>ffmpeg</em>集合了各种音频,视频编解码协议,通过设置参数可以完成基于MPEG4,H.264等协议的编解码,现在将其对比结果罗列如下: 1.软件版本:         Xvid:1.2.1         <em>x264</em>:无         <em>ffmpeg</em>:0.5 2. 视频样本 foreman.ci
x264编码 1pass 与 2pass 性能质量对比
1 素材 链接:https://pan.baidu.com/s/1SyDyvuNwLxbmW6r1QGCbFQ 密码:hv7l crowd_run_1080p50.y4m 帧率:50;分辨率1920x1080;   2 <em>编码</em>测试 time <em>x264</em> --profile high --preset veryslow --tune film --psnr --ssim --nal-hrd v...
x264编译到ffmpeg的方法
1 下载<em>x264</em>并编译 git clone git://git.videolan.org/<em>x264</em>.git ./configure --enable-shared --enable-static --prefix=/usr make -j8 make install 解释一下,指定/usr的话,安装好,不用配置路径。 j8的目的是编译起来,用8路进行make,节省编译时间 2
FFMPEG进阶系列03-ffmpeg转码专题(中)x264参数详解
文章目录概述版本Presets(预设)tune slow-firstpassFrame-type options(帧类型选项)keyintmin-keyintno-scenecutscenecutintra-refreshbframesb-adaptb-biasb-pyramidopen-gopno-cabacrefdeblockno-deblockslicesslice-max-sizeslic...
H264编码系列之每帧slice数量问题
在推送RTMP时,每个消息<em>应该</em>为一个完整的vidoe帧,而不是单个slice。 但当一帧被划分为多个slice时,如果不将多个slice合成一帧数据进行发送,则导致接收端不能正常解码。 X264每帧slice的数量不只是受i_slice_count 参数影响,也受线程数量i_threads 影响。 // 指定处理线程,如果不为1,slice设置将失效 x-...
windows下利用x264视频编码h264
最近在研究Windows下<em>x264</em><em>编码</em>h264,在网上找了一些,发现很多程序不全,或者在Linux平台下的程序,于是从网上找了一些代码,修改了一下,适合在Windows下利用VS2012编译运行。     首先从<em>x264</em>的官网下载<em>x264</em>的源代码,http://www.videolan.org/developers/<em>x264</em>.html,里面有源代码以及Windows下生成好的lib库文件、x26
FFmpegH264 多线程 优化
提取FFmpeg中H264解码库的代码,支持多线程和MMX、SSE和AVX等优化。
关于ffmpeg中的VBR控制的讨论及各参数在编码时的作用(编码参数设置必看)精华
原文引用网址:http://bbs.chinavideo.org/viewthread.php?tid=256&extra=page%3D1   关于<em>ffmpeg</em>中的VBR控制的讨论 很多朋友问起我关于<em>ffmpeg</em>中VBR的问题,主要是该设置哪些参数,该<em>如何</em>设置等问题。以前我也没有研究过<em>ffmpeg</em>的VBR,所以就在网上查找了一下,无功而返,后面就看<em>ffmpeg</em>.c的源代
FFmpeg基础知识之-—— H264编码profile & level控制
FFmpeg基础知识之————H264<em>编码</em>profile & level控制 原文: http://www.cnblogs.com/tinywan/p/6404411.html         作者:Tinywan H.264有四种画质级别,分别是baseline, extended, main, high: 1、Baseline Profile:基本画质。支持I/P 帧,只支持
ffmpeg解码jpg并编码成h264
直接代码: int getFileSize(const char* sFile) { FILE* f = fopen(sFile, "rb"); fseek(f,0,SEEK_END); int s = ftell(f); fclose(f); return s; } class CJpgQueue { public: CJpgQueue() { } ~CJpgQueue
添加x264编码器的ffmpeg
添加<em>x264</em><em>编码</em>器的<em>ffmpeg</em>库,交叉编译,android下测试可用
x264中可以调节的编码参数说明
参数名称 对应X264参数 参数说明 默认值 参数范围 帧速率 - 控制服务器端的定时器,以控制每秒<em>编码</em>多少帧图像 25 12~30(具体情况视硬件能力而定) 最大IDR帧间隔 i_keyint_max 最大IDR帧间间隔,每当收到IDR帧,解码器就会清空参考队列,并且更新PPS和SPS参数。IDR帧也是一种I帧,因此,该参数如设置得比较小则更利于流畅的视频
V4L2采集YUYV数据—X264编码H264视频实例
    前几天在网上买个罗技的C270摄像头,它支持YUYV(YUV422)和JPEG数据输出。它规格书上写的是支持HD720P(1280*720像素),在实际的调试过程中,我使用该分辨率会导致数据采集过慢。这里需要注意一下,罗技的摄像头C270在有些虚拟机上使用是有异常的,有些是不能映射到虚拟机上,有些是映射过去操作非常缓慢。因为之前在自己的开发板上调试过YUV420的摄像头,在此基础上改为YU...
Linux下编译ffmpegx264支持的opencv
主要参考: 1、http://www.ozbotz.org/opencv-installation/ 2、http://www.ozbotz.org/opencv-install-troubleshooting/ 开发环境:Ubuntu 16.04+OpenCV2.4.9 安装过程: The Installation Procedure To install a
x264编码参数大测试
<em>x264</em>是一款优秀的H.264<em>编码</em>器,能够压制出低码率高画质的视频。但它的<em>编码</em>参数很多,很多时候不知道怎么挑选。于是我决定做横向测试,彻底搞清楚各种参数的影响。   一、测试结果索引     为了便于查看,将测试结果放在最前面。   01 subme与crf(a):http://www.cnblogs.com/zyl910/archive/2011/12/14/
【媒体流】libx264 将rgb24格式转换为h264
简介最近我在将自己的久笔记本放在家里做小型的远程监控,在网络传输视频时需要用到h264码流。然而我对h264只能说知道只知道它是一个视频<em>编码</em>格式,仅此而已。然后某度一下之后发现有开源的库可以直接使用。lib<em>x264</em>就这样被我发现了。在其他博客中混迹了一段时间后发现,网上基本上是没有说使用lib<em>x264</em> 将rgb24 数据格式转 h264的。基本上都是讲yuv420转的,说什么lib<em>x264</em>只支持yu
libx264(h264)编码
H264<em>编码</em>,lib<em>x264</em>。 <em>ffmpeg</em>等工具需要使用的<em>编码</em>。。。。
强连通分量及缩点tarjan算法解析
强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Time, DFN[N], Low[N]; DFN[i]表示 遍历到 i 点时是第几次dfs Low[u] 表示 以u点为父节点的 子树 能连接到 [栈中] 最上端的点   int
MyEclipse 2016 CI 1 破解下载
MyEclipse 2016 CI 1破解说明 0.安装完打开一次MyEclipse 1.Usercode需要自己填写 然后SystemId需要点击按键生成——这个如果提示 Cannot find JNIWrapper native library (jniwrap.dll) in java.library.path: 这样的错误,不要紧,再点一下应该就出来了,还是没有的话请注意权限问题(主要是Mac和Linux) 2.选择版本——算号器我添加了Blue版的 3.在算号器填好Usercode,并生成了SystemId后,点Active 4.点SaveProperite 相关下载链接:[url=//download.csdn.net/download/asiakoo/9480117?utm_source=bbsseo]//download.csdn.net/download/asiakoo/9480117?utm_source=bbsseo[/url]
软件工程1-4章ppt下载
轻松学习软件工程,让学习变得很愉快,不枯燥! 相关下载链接:[url=//download.csdn.net/download/ocean19881116611/2420925?utm_source=bbsseo]//download.csdn.net/download/ocean19881116611/2420925?utm_source=bbsseo[/url]
Web的入侵防御系统的设计与实现下载
Web服务器往往得不到传统防御方式的有效保护,使其成为整个网络环境中安全最薄弱的地方。缓冲区溢出、SQL注入、基于脚本的DDos、盗链和跨站等攻击行为对Web服务器的安全和稳定造成极大的威胁,而目前缺少有效的防御和保护的方式。本课题中首先调研了当前Web服务器所面对的威胁,然后针对这些安全威胁设计了一套入侵防御系统,并通过ISAPI实现了对Windows平台下的IIS服务器的保护。在这套入侵防御系统中,可以通过制定策略来检测所有访问Web服务器的行为,可以有效地阻止恶意攻击从而保护Web服务器的安全。这套入侵防御系统的策略引擎可以加载和调用Lua语言编写的策略脚本,使策略脚本的编写更加简单。 相关下载链接:[url=//download.csdn.net/download/dsfdsgfhgfhgfhgfh/2430463?utm_source=bbsseo]//download.csdn.net/download/dsfdsgfhgfhgfhgfh/2430463?utm_source=bbsseo[/url]
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java应该如何学习 javaee应该如何学习
我们是很有底线的