ffmpeg编译、移植到android中,进行H264解码播放。。。 [问题点数:40分]

Bbs1
本版专家分:0
结帖率 0%
Bbs7
本版专家分:23396
Blank
微软MVP 2014年4月 荣获微软MVP称号
2013年4月 荣获微软MVP称号
2012年4月 荣获微软MVP称号
2011年4月 荣获微软MVP称号
2010年4月 荣获微软MVP称号
Blank
红花 2008年12月 移动平台大版内专家分月排行榜第一
Blank
蓝花 2009年3月 移动平台大版内专家分月排行榜第三
2009年1月 移动平台大版内专家分月排行榜第三
2008年11月 移动平台大版内专家分月排行榜第三
Bbs1
本版专家分:0
Android使用FFmpeg 解码H264并播放(一)
问题描述在开发中使用某摄像头的SDK,只能获取到一帧帧的 H264 视频数据,不知道视频流地址,需要自己解码出图像并播放。问题解决编译FFmpeg此处省略,这里有 编译好的库,上传到Github了。开发环境配置1、 配置 AndroidStudio 的 NDK 路径。 2、 配置 app 的 build.gradle ,添加 CMake 参数android { defaultConfig
类似%E4%B8%AD%E5%9B%BD这种字符转换问题
服务器端: String encodeStr = URLEncoder.encode("中国", "utf-8");   System.out.println("处理后:" + encodeStr);    //处理后:%E4%B8%AD%E5%9B%BD      客户端: String decodeStr = URLDecoder.decode(encodeStr, "utf-8
有关小波的几个术语及常见的小波基介绍
本篇是这段时间学习小波变换的一个收尾,了解一下常见的小波函数,混个脸熟,知道一下常见的几个术语,有个印象即可,这里就当是先作一个备忘录,以后若有需要再深入研究。
使用win7自带的备份还原、创建系统镜像
文章转自;http://blog.csdn.net/lishuhuakai/article/details/8221303 如何使用win7自带的备份还原以及创建系统镜像------傻瓜式教程 对于经常鼓捣电脑的童鞋来说,装系统是一件极其平常的事情,不过系统装多了之后,我们会感到比较烦躁,因为每一次装系统意味着驱动的重新安装,程序的重新安装,每次这么鼓捣几次,半天时间就花在这上面了
腾讯产品群面题解析
2017年腾讯秋招已逐渐拉下帷幕,下面我将腾讯这几年的群面题进行汇总分析,以飨大家,感谢参与讨论的小伙伴@丹丹和@世新,不足之处还望留言赐教! 群面题提纲: 1、青少年游戏监控平台的设立,除此之外游戏平台、家长学校、社会方面分别还能做什么? 2、纳米气体传感器的应用,设计一款产品 3、设计一个智能语音助手 4、5V1的拉杆换道问题 5、深圳的面积是A平方米,2016年的常住人口B万
Javascript 实现gb2312和utf8编码的互换
转载地址 function getCodeStr(){  return codestr; }   function gb2utf(gbStr){  var codeStr = getCodeStr();  var codeRE = new RegExp("(%..%..)","gi");  var replaceRE = new RegExp("(%
Android FFMpeg(三)——使用FFMpeg解码h264、aac
前面博客记录了FFMpeg的编译编译后我们可以拿到FFMpeg的动态库和静态库,拿到这些库文件后,通常我们需要做个简单的封装才能在Android上层愉快的使用。本篇博客的是从拿到FFMpeg静态库到使用FFMpeg解码视频的过程,记录尽可能的详尽,可能会让博客的篇幅略长。准备工作库文件本篇博客的示例是利用FFMPeg静态库进行解码的,所以首先我们需要得到FFMpeg的静态库,编译可以参照之前的两篇
Android使用FFmpeg 解码H264并播放(三)
上一节记录了Android使用FFmpeg解码H264的过程。这一节记录在Android上播放的过程。问题描述在开发中使用某摄像头的SDK,只能获取到一帧帧的 H264 视频数据,不知道视频流地址,需要自己解码出图像并播放。问题解决Android 播放解码后的视频帧在Android上播放视频的总体思路是在Native层从 Surface 获取 到ANativeWindow,通过修改 ANativeW
FFmpeg接收H.264解码播放
       在前面一个博客(地址在这里 )中,我们做到了将采集的摄像头数据编码为H.264,接下来我么讨论下如何将H.264发送,在接收端接收解码播放。和上一篇编码的博客一样,我们也是直接调用ffmpeg.exe和ffplay.exe文件,内部的具体操作需要抽时间去阅读。1.传输       UDP是一种无连接的传输层协议,不对传送数据包进行可靠性保证,适合一次性传输少量数据。       我...
Android使用FFmpeg 解码H264并播放(二)
上一节记录了Android使用FFmpeg环境搭建过程。这一节记录视频解码过程。问题描述在开发中使用某摄像头的SDK,只能获取到一帧帧的 H264 视频数据,不知道视频流地址,需要自己解码出图像并播放。问题解决编译FFmpeg点击查看开发环境配置点击查看解码H264原始数据格式首先看我们能获取到数据格式public class VideoStream{ //video buffer
《传智播客毕向东Java基础全套视频教程》下载地址
ed2k://|file|%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2%E6%AF%95%E5%90%91%E4%B8%9CJava%E5%9F%BA%E7%A1%80%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B-day01-01-%E5%9F%BA%E6%9C%AC%E5%B8%B8%E8%AF%86.avi|34059776|393df7
常用3753个汉字的UTF-8编码
啊  %E5%95%8A阿  %E9%98%BF埃  %E5%9F%83挨  %E6%8C%A8哎  %E5%93%8E唉  %E5%94%89哀  %E5%93%80皑  %E7%9A%91癌  %E7%99%8C蔼  %E8%94%BC矮  %E7%9F%AE艾  %E8%89%BE碍  %E7%A2%8D爱  %E7%88%B1隘  %E9%9A%98鞍  %E9%9E%8D氨  %E6%B
LaTeX数学公式输入初级入门
LaTeX最强大的功能就是显示美丽的数学公式,下面我们来看这些公式是怎么实现的。 1、数学公式的前后要加上 $ 或 \( 和 \),比如:$f(x) = 3x + 7$ 和 \(f(x) = 3x + 7\) 效果是一样的; 如果用 \[ 和 \],或者使用 $$ 和 $$,则改公式独占一行; 如果用 \begin{equation} 和 \end{equation},则公式
yyets 2013.01到2014.05电影的ed2k
ed2k://|file|From.Here.to.Eternity.1953.%E4%B9%B1%E4%B8%96%E5%BF%A0%E9%AD%82.%E5%8F%8C%E8%AF%AD%E5%AD%97%E5%B9%95.HR-HDTV.AC3.768X576.x264.mkv|1935727616|5b0ff6c527103a263bfad126f55a3fe6|h=7f6zdf7xhui
历经万难,终于搞定Android下的使用FFMPEG成功对H.264视频流解码
在经过差不多一个礼拜的时间,终于完成了RTSP+H.264解码,真的是十分的高兴,期间感冒,身体不好,还和XX闹矛盾,因此做出来也有点出乎意料,心情格外的好。终于能毕业了。 因此分享一下我的经验,希望对大家有所帮助。 工作流程:1 RTSP客户端搭建   2 使用VLC流测试RTSP    3 RTP接收线程的框架     4 主线程用于绘图的框架  5 FFMPEG的移植
视频学习笔记:Android ffmpeg解码多路h264视频并显示
背景Android设备上使用ffmpeg解码多路h264视频,抽取了一个简单demo方便日后参考,在此记录一下。demo中主要涉及以下功能:1.ffmpeg解码h264视频为yuv帧 2.使用ffmpeg将yuv帧转换为可以在画布上渲染的rgb帧 3.将Android的SurfaceView类传入jni层并使用rgb帧进行渲染 4.使用java类包装c++类,多线程解码多路视频
iOS平台使用ffmpeg解码h264视频流
对于视频文件和rtsp之类的主流视频传输协议,ffmpeg提供avformat_open_input接口,直接将文件路径或URL传入即可打开。读取视频数据、解码器初始参数设置等,都可以通过调用API来完成。但是对于h264流,没有任何封装格式,也就无法使用libavformat。所以许多工作需要自己手工完成。这里的h264流指AnnexB,也就是每个nal unit以起始码00 00 00 01 或
ffmpeg如何从内存读取h264音视频流进行解码显示
由于项目组重组,自己有幸开始做音视频编解码方面的研发工作,现将自己近期的工作收获作为BOLG的方式记录起来,方便自己日后查阅和学习。说到H264编解码,不能不提到ffmpeg,据自己查证的资料显示,现大部分软件的H264编解码基本都是使用ffmpeg作为自己的三方库工具,关于ffmpeg有多牛,这里不作赘述。 按照之前查阅的资料,ffmpeg可以解码rtp网络流、从内存读取数据流来解码、读取文件
ffmpeg 解码H264裸数据流
相信很多人在刚接触ffmpeg的时候,想要ffmpeg的api都觉得很比较繁琐,因为本身代码量比较大,模块比较多,api也比较多,而且在ffmpeg中的例程都是以文件的行驶传入到编解码器重的,所以想实现简单的纯数据流解码就感觉无从下手了;本文就是描述将一帧完整的H264数据解码为yuyv格式的数据。ffmpeg版本:ffmpeg-3.1.2用到的ffmpeg库有:libavformat、libav...
Android摄像头采集编码H264及H264解码播放
包含两个Demo,一个是H264TestCameraSaveH264工程,运行可以开启摄像头录制编码H264文件,输出为SD卡中encoder.h264;另一个是testService工程,读取SD下的encoder.h264解码为RGB绘图播放。附加一个encoder.h264文件。
C#使用FFMPEG解码H264视频源码
C#版本的视频解码源码,使用FFMPEG解码H264视频文件,解码后的数据保存为YUV格式,可以使用yuvplayer播放. Dll目录是运行时使用的动态库. Video目录是测试用的H264视频文件. 源码展示了如何用CLR封装C代码,然后在C#项目中使用. 涉及CLR的数据格式转换,事件和线程。 项目工程使用VS 2012创建。
ffmpeg 接收解码rtp h264视频流
首先说明一下nalu的格式:       nalu由三个部分组成:开始码(0x01000000)+nalu头+nalu数据。 使用live555 testrtspclient那个例子来接收rtp流,接收到的nalu是没有开始码的, 需要自己加上起始码,然后喂个ffmepg的packet.data,然后就可以解码了, 将sps,pps补偿给ffmepg:       在ffmpeg
让WebRTC支持H264编解码
最近实验了下如何让WebRTC支持H264编码,记录下,供有需要的人参考。
ffmpeg解码h264文件,opencv显示
H264.h#include #include #include #include #include typedef struct { int startcodeprefix_len; //! 4 for parameter sets and first slice in p
FFmpeg实时解码H264
    ffmpeg解码过程在前面已经稍微总结了下,这里主要是测试一下用ffmpeg如何进行实时的解码。    在解码之前,我们先做好准备工作,调用摄像头。编码的过程中,进行入队出队操作,出队后的数据交给解码器,进行解码。    接下来依次介绍各个模块。1.调用摄像头:VideoCapture capture(0); int w = capture.get(CV_CAP_PROP_FRAME_...
Qt基于FFmpeg播放本地 H.264(H264)文件
最近在弄H264的硬件编解码,基于DM3730,但是为了调试方便,在小红帽上用FFmpeg实现了H264的软件编解码。现在弄了一个Windows的例子,给需要的同学参考一下,如果大家觉得有帮助,可以小手一抖,帮我点个赞。 这个例子是Qt Mingw版本的,FFmpeg可以去官网下载,也可以自己编译编译方法可以参考我的博文。 Windows 7(Win7)下MinGW+msys编译ffmpeg
FFMPEG实现RTSP中H264数据流解码 并且实时播放
主要过程和ffmpeg实现视频播放的过程差不多 可以参考:https://blog.csdn.net/yunge812/article/details/79342089 主要改动原始文件的读取 播放器是播放本地文件 而我们这里需要读取的是RTSP中H264数据流 char filepath[1024] = "rtsp://184.72.239.149/vod/mp4://Bi...
Java利用JNI调用FFMpeg对h264码流进行解码
前期配置工作:在Visual Studio端配置FFMpeg在Visual Studio端配置OpenCV解码部分主要源代码及说明解码部分vs工程下载地址使用JNI调用:java端:package com.recon.action; public class Decode { public native String loadfile(String s); //传递字符串告知c++工程所要打开的h
FFmpeg4.0 实现一个H264视频解码
     FFmpeg相信做流媒体的都不陌生,这就不累述了。最近在各方资源里we闻到有人说”FFmpeg是做音视频编解码的“,说的太狭隘了,了解FFmpeg的一般也都知道VLC,VLC是一套以FFmpeg为基础的完整流媒体解决方案,行内称:VLC是汽车,FFMpeg就是发动机”,这就很形象的描述了FFmpeg的功能。FFmpeg是集音视频采集、音视频演示数据处理、解复用、编码解码、渲染等完整流媒体...
Jrtplib收发H264文件 + FFMPEG解码+VFW播放视频
最近看的文章和demo都是把H264文件用RTP协议发送出去后,用VLC的SDP文件测试播放,那么如果 自己接收到RTP协议的H264包后如何解码播放呢?     关于FFMPEG解码播放的示例,一般都是打开本地磁盘的某个文件,比如D:\test.h264,边读入数据,边解码播放,如果数据是RTP协议传过来的H264包,如何解码?因为avformat_open_input()函数传入的是文件
ffmpeg 接收h264+aac并解码
ffmpeg一直更新所以运行时有些方法和库对应不上,我用的是http://ffmpeg.zeranoe.com/builds/中:ffmpeg-20140305-git-d08bb06-win32-shared和ffmpeg-20140305-git-d08bb06-win32-dev;直接上代码了#include "stdafx.h" #include #include #include
FFMPEG实现H264的解码(从源代码角度)
农历2014年底了,将前段时间工作中研究的FFMPEG解码H264流程在此做一下整理,也算作年终技术总结了! H264解码原理: H264分为NAL(网络抽象层)和VCL(视频编码层) 解码器的总框架: 解码器的流程为:将NAL数据位流输入到H264的解码器中,熵解码模块解码后输出量化系数X;系数经过反量化和反变换得到残差数据R;解码器使用从码流中解码的头信息生成预测块Pr
ffmpeg h264 视频编码 模糊问题、MP4播放速度快问题
本文使用 ffmpeg的dll、lib、include进行视频编码。相关基本知识可参考以下博客:https://blog.csdn.net/cfqcfqcfqcfqcfq/article/details/68496213编码生成的视频模糊、清晰度特别差。原因是:未对编码器的上下文信息的码率进行显示设置,或设置的过低,(默认的值太小不满足)AVCodecContext* pCodecCtx;//编码...
ffmpeg解码h264视频文件,并且实时显示(mfc)
ffmpeg解码h264视频文件,并且将解码出来的每帧图像用opencv封装进行显示,ffmpeg采用的是最新的3-2版本。另外,程序预留了将每帧图像保存成bmp的接口,注释详细。使用时须配置好ffmpeg和opencv,然后将自己的h264文件名称修改为1.h264 并将其置于当前目录即可运行(可作为2次开发的参考)
FFMPEG+SDL2.0流媒体开发3---简易MP4视频播放器,提取MP4的H264视频序列解码并且显示
简介 之前写了一遍提取MP4中的音视频并且解码,这一篇引入SDL2.0来显示解码后的视频序列 实现一个简易的 视频播放器。 我这里用的FFMPEG和SDL2.0都是最新版的 可能网上的资料不是很多,API接口也变了很多,不过大体的思路还是一样的。 分析几个FFMPEG函数 在这之前我们分析几个代码中可能引起疑问的FFMPEG函数,分别是 av_image_alloc (分
ffpemg使用四:ffmepg解码+Qt显示即播放器的实现
上篇实现了对录屏数据的推流,现在要做一个播放器对推流的数据进行播放。同样此篇不介绍流媒体服务器的搭建(另行介绍)。         代码十分简单,只需要完成对接收数据的解码即可,这些在第一篇已经介绍,唯一注意的一点是,Qt不支持yuv格式,需要对解码的yuv做rgb的转换;转换的具体原理不再讲,虽然很简单,只是做矩阵运算,但因为是乘法运算,cup处理乘除法的效率极低,所以仍推荐用ffmpeg的转
ffmpeg软解h264速度与ref数的关系
使用的机器:i7 2720QM,6G内存,XP系统。 使用的ffmpeg版本: ffmpeg version 2.0-4dcb2f7 Copyright (c) 2000-2013 the FFmpeg developers built on Aug 12 2013 17:46:38 with gcc 4.7.1 (tdm-1) 命令:ffmpeg -i "k-onncop1.mp4" -
ffmpeg解码RTSP/TCP视频流H.264(QT界面显示视频画面)
我用的ffmpeg版本为 ffmpeg-2.1.8.tar.bz2 版本低了恐怕有些头文件和API找不到。 在Linux下解压后编译,Linux下编译很简单,我这里生成的动态库: ./configure –enable-shared make 就能找到各个so动态库文件。 移动位置后,记得手动链接 一下:ln -s libavcodec.so.55 libavcodec.so ln -s
windows平台下使用ffmpeg对视频进行H264编码总结
windows平台下使用ffmpeg对视频进行H264编码总结
FFMPEG只编译H264编码
1.ffmpeg 编译./configure --prefix=/usr/local/ --enable-shared --disable-everything --enable-encoder=libopenh264 --enable-gpl --enable-pthreads  --disable-asm  --disable-hwaccels --disable-protocols--ena...
android上利用ffmpeg解码后,怎么回调解码的数据,回调NV21格式的图像
1.在android上用ffmpeg.  肯定要先 交叉编译好,ffmpeg的so库.在这,假设你已经编译好库 2. 在用AS (android studio) 写c/c++代码时,也就是所谓的解码 视频代码.在这里不做特殊说明. if (filename != nullptr){ filenameStr = filename; LOG(ERROR) ...
FFMPEG 实时解码网络H264码流,RTP封装
初学FFMPEG和H264,解码视频流时遇到了很多麻烦,记录一下研究成果。 我使用的FFMPEG 2.5.2版本,使用av_parser_parse2重组图像帧时遇到了一下麻烦! 下面是主要代码: RTP头定义, typedef struct { /**//* byte 0 */ unsigned char csrc_len:4; /**//* ex
在linux下用ffmpeg解码h264
首先,介绍一下,h264主要操作流程,见函数:#include "API_H264Decode.hpp" //----------------------------ffmpeg  h264解码类 API::H264DecodeDev::H264DecodeDev(): m_pcodec(nullptr), m_pCodeCtx(nullptr), m_pFrame(nullptr),//m_pC...
ffmpeg解码数据转为Mat通过opencv函数显示
/** * 抽取ffmpeg中的函数接口实现视频解码,再通过Opencv中的函数接口播放 */ #define __STDC_CONSTANT_MACROS #include // Opencv #include #include #include #include extern "C" { #include "libavutil/avutil.h" #include "liba
ios 使用FFmpeg对视频进行解码播放
这里贴一个大神的demo地址:https://github.com/gaoyuhang/FFmpegTest.git
H.264之在android手机端的解码播放
1、NAL全称Network Abstract Layer, 即网络抽象层。          在H.264/AVC视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象层面(NAL)。其中,前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输。因此我们平时的每帧数据就是一个NAL单元(SPS与PPS除外)。在实际的
linux平台ffmpeg+h.264的本机移植和交叉编译
本文讲解在ubuntu和arm平台下的ffmpeg和x264相关库的移植,最终
Android上用MediaCodec+SurfaceView的方式对H264裸流解码播放
    公司要实现在手机app上查看到摄像头的拍摄视频,使用了第三方的服务,但第三方最终只会底层透传一个视频的字节数组,并没有视频播放的功能,此功能需要自己实现。    由于第三方服务是基于native的,所以之前写的h5app不能用了,得重新用native实现,而我本人也是不懂安卓的,但没办法,还是得去琢磨。    一开始只知道我现在能拿到视频的字节数组,但压根不知道怎么把数组变成视频显示在手机...
基于ffmpeg+opencv的h264解码显示功能的实现
最近做的一个项目中需要对h264编码的视频文件进行解码并转换为openc可以处理的格式进行显示和相关的图像处理操作。从网上找了借鉴了很多资料,但做的相对来说比较简单。因此,在网上现有的代码基础上进行了整理和优化。目前在项目中集成,效果良好。特分享给有共同需求的朋友,如有可继续优化的空间,还望各位朋友能指出,我们共同学习与提高。 下面,贴出相关代码。 decode_video.h #ifnde...
Android使用MediaCodec硬解码播放H264格式视频文件
前些时间,通过各种搜索加请教了好几个同行的朋友,在他们的指点下实现: RTSP+H264实时视频播放播放及把实时视频流保存到手机SD卡中,再对保存的H264格式文件进行播放等基本功能。 非常感谢这些朋友的无私帮忙,在实现功能的同时,我也把他们提供的一些代码加自己的修改简单记录下来,希望能给有需要的朋友一点点帮助。 这篇博客就是简单记录用MediaCodec +SurfaceView解码
NDK编译的最新ffmpeg,支持RTSP流
通过修改了一下文件终于移植了最新的ffmpeg,里面还包括了提供给用户的头文件。最新的ffmpeg,支持RTSP。已经测试过。http://blog.csdn.net/nieyongs/article/details/21407033这个是Android版RTSP客户端的代码分析。
h264视频流解码并通过D3D显示
通过RTSP协议获取到视频帧数据,输入到h264解码模块中解码为yv12数据,通过D3D显示 vs2008 工程 选择RTSP源时 查看是什么分辨率 在stdafx.h 中修改宏定义
如何用ffmpeg解码H.264文件为一帧帧图像
ffmpeg -i my264.264 -r 5 image%3d.png 这个语句就可以将my264.264的视频转换为image001.png、image002.png。如果想输出更多的画面,可以增加-r 参数后面的数字。     ffmpeg也支持将一系列图片转换为一个视频 http://blog.sina.com.cn/s/blog_53b3dc830
使用ffmpeg的lib库解码H264/H265
ffmpeg的开源代码自行在ffmpeg的官方下载(http://ffmpeg.org/) 一、编译 编译之前需要先安装gcc编译器,本文使用的是arm-linux的交叉编译器,这里简称arm-linux-gcc 本文使用的版本是 ffmpeg-3.3.3,下载得到ffmpeg-3.3.3.tar.bz2 mkdir dist tar xvf ffmpeg-3.3.3.tar.bz2
Android App开发入门:使用Android Studio 2.X开发环境
本书从初学者的角度出发,通过通俗易懂的语言、丰富的实例,详细介绍使用AndroidStudio2.X开发环境开发Android应用程序应该掌握的各种技术。
WEBRTC 支持H264编解码
WEBRTC视频编解码支持H264 VP8 VP9 但是默认是VP8 ,根据SDP描述协商 WEBRTC H264编码采用OPENH264 解码采用FFMPEG 一 让WEBRTC支持H264编码 1. 修改配置支持H264编码  webrtc/build/common.gypi  rtc_use_h264=1(只要有都设为1),这样OPENH264就会生成  然后需要重新编译
ffmpeg 静态库太大,只要h264,mpeg4
./configure --disable-debug --enable-static --enable-memalign-hack --enable-swscale --disable-avformat --disable-avfilter --enable-pthreads  --enable-runtime-cpudetect --disable-w32threads --disable-f
树莓派编译安装FFmpeg(添加H.264硬件编解码器支持)
说明FFmpeg是一套开源的音视频编解码库,有非常强大的功能,包括视频采集功能、视频格式转换等。众所周知视频编解码是一个非常消耗系统资源的过程,而树莓派自带了H.264的硬件编解码器,因此本文将详解在树莓派配置FFmpeg使其支持硬件编解码器并编译安装的过程。
解码H264,RTSP流视频播放
通过对h264视频的解码进行对rtsp流的播放,包含了解码部分,以及流处理的部分,socket服务
ffmpeg解码H.264视频数据,MFC播放视频
ffmpeg库 在vs2012中的调用, 用ffmpeg实现H.264视频数据的解码,在MFC中实现视频的播放显示
iOS 音视频: 让 FFMpeg 支持对 H.264 的编码
很多同学被诸如264之类的术语搞懵逼了. 先大概解释一下. H.264 是视频的一种编码标准(规范), x264 是一个库, 实现了对 H.264 视频格式的编码,但是没有实现解码 H.264 的功能. ffmpeg 是一个框架,实现了对 H.264视频格式的解码功能. 换句话说 ffmpeg + x264 就包含了对 H.264 格式的编码、解码的实现。 看一个典型的图
web无插件解码播放H264/H265(WebAssembly解码HTML5播放)
我之前写过一篇《web无插件解码播放H264/H265(js解码HTML5播放)》,与本文的项目意义基本一致,不同的是实现方案有一定差异。之前介绍的是纯JS解码,本文介绍WebAssembly解码。 本项目已经用于实际产品之中,亲测可用。 项目描述: 视频传输使用websocket协议,ipc后端推流使用C语言编程,web前端收流使用js语言。 视频解码库使用WebAssembly实现...
webrtc添加H264支持编译
默认编译的webrtc视频编解码没有H264的支持,可以通过设置添加支持;一般情况下,编码器用OPENh264解码器用FFmpeg;还有的人自己实现将编解码器重新实现添加到webrtc源码中,虽然可以,但是麻烦;主要参考了这几篇文章:《WebRTC支持H264编解码》  http://www.jianshu.com/p/c33a905b17ff《让WebRTC支持H264编解码》http://b...
利用ffmpeg将H264解码为RGB
由于公司买到了一个不提供解码器的设备,我不得已还要做解码的工作。在网上找了一圈,H264解码比较方便的也就是ffmpeg一系列的函数库了,原本设备中也是用这套函数库解码,但厂家不给提供,没办法,只得自己搞了。
LINUX下FFMPEG解码h264格式到YUV
工程是在UBUNTU下的,可以直接make编译运行,工程内有测试用的264文件, 运行程序后可以解码成yuv格式的文件。
H264文件解析出nalu数据,送给ffmpeg解码,opencv显示
本博客主要是H264的视频码流有ffmpeg 解码后,有opencv先,这里贴出全部代码,你只需自己建个工程,配置一下ffmpeg库和opencv3.0库就好了。 头文件 H264.h#include #include #include #include #include typedef
windows下 使用 ffmpeg 解码显示编码为H264的RTSP流
参考的文章:  100行代码实现最简单的基于FFMPEG+SDL的视频播放器    显示使用的是 SDL ,windows下用 GDI+ 显示数据里的图片,以下为代码 , typedef struct tagVideoData { tagVideoData() { bRunning = TRUE; hDC = NULL; } CString strRTSP;
ffmpeg h264解码, 屏蔽因为网络丢包等各种原因导致的花屏帧
ffmpeg h264解码, 屏蔽因为网络丢包等各种原因导致的花屏帧  ---->看来问题只能这样解决了,现在还要多测测,防止产生新的问题。目前来看,对现有代码没有影响,花屏的帧直接屏蔽掉了。 思路: 问了下机顶盒方面h264解码的,他们用的是硬件解码,他们做到不花屏的方法就是简单的设置了一个硬件解码提供的接口:设置了错误处理模式。 我想这个错误处理模式肯定对那些错误的帧直接屏
Android 实时视频采集/编码/传输/解码/播放—方案调研
【流媒體】Android 实时视频采集/编码/传输/解码/播放—方案调研(初) 【流媒體】Android 实时视频采集/编码/传输/解码/播放—方案调研(初)  SkySeraph Mar 23rd 2012 Email:skyseraph00@163.com  更多精彩请直接访问SkySeraph个人站点:www.skyseraph.com  实
FFmpeg解码H264裸流并转换成opencv Mat
感谢雷霄骅博士的在中文视频编解码的付出,http://blog.csdn.net/leixiaohua1020最近要搞一些视频推流的事情,要解析H264裸流并且获取opencv格式的Mat数据给算法工程师们跑算法.相关资源一直很难找到,经常都是太旧导致API版本都更新换代了,没办法让新人或者外行[比如我]快速验证代码是否可行.在参考多个博客,前人的代码东拼西凑总算是写出了这个H264解码器.算是尽我
android硬编码h264数据,并使用rtp推送数据流,实现一个简单的直播-MediaCodec(一)
写在前面:我并非专业做流媒体的coder,对流媒体行业无比崇拜,只是做了几年安卓车载ROM,对安卓AV开发算是略懂。本篇博客是我对MediaCodec编解码和rtp推流的一次尝试,希望能给有需要的朋友一些细微的帮助,不喜勿喷,如果有不对的地方希望大神指正共同进步,拜谢。  公司近期有意向做直播方面业务,叫我先测试下安卓MediaCodec硬解码并推送实时数据流。由于之前做过USB摄像头用到过Medi
linux下编译ffmpeg,并加入H264编码支持
1.libx264 编译 ./configure --enable-static --disable-asm --prefix=/usr/local/ffmpegRedHat 2.ffmpeg 编译 ./configure --enable-shared --disable-yasm --enable-memalign-hack --enable-libx264 --enable-gpl
利用ffmpeg和opencv进行视频的解码播放
OpenCV中有自己的用于处理图片和视频的类,可以很方便的读入文件和显示。 现在视频数据流是ffmpeg解码h264文件得到的,由于要依赖该数据源进行相应的后续处理,所以需要将ffmpeg中得到的数据缓存转换成可以被OpenCV处理的Mat类对象。
H.264视频在android手机端的解码播放(转)
H.264视频在android手机端的解码播放(转)   (2014-01-26 14:43:27) 转载▼ 标签:  android   h264   vlc   rtp   it 分类: android   随着无线网络和智能手机的发展,智能手机与人们日常生活联系越来越紧密,娱乐、商务应用
Qt + ffmpeg 视频解码
1.创建Qt项目,选择编译器为Android_for_armeabi_v7。2.使用之前编译好的ffmpeg头文件和库文件 a.在项目目录创建ffmpeg目录,目录里面包含include目录和lib目录,分别为ffmpeg的头文件和静态库文件所在目录 b.把ffmpeg\lib\libavcodec.a ffmpeg\lib\libavformat.a ffmpeg\lib\libavutil.a
FFmpeg解码H264视频流
此文章主要包含解码H264视频流数据:Annex B格式、H264视频裸流、支持输出RGB24或YUV420格式;
Android使用ffmpeg解码h265裸流vs使用MediaCodec解码h265裸流
突然发现自己曾经做过的东西要记录下来,这样以后就不至于找不到了,早这样该多好。今天整理了一下之前做的demo,希望对你们也有用。如果哪里移植不好。加我qq:106601549 这只是个个简单的demo,要想处理好jni层的一些全局变量还需要一些功夫的,抛砖引玉,网上资料太少,自己try out Android使用ffmpeg解码h265第一步就是进行ffmpeg移植,这一点有很多资料可以
RTSP H264硬解码显示
记录一个RTSP取流地址:https://github.com/htwahzs/Rtsp-Android-Client
[ffmpeg]如何同时解码多路视频
大大们好 我最近在做ffmpeg解码h.264视频相关的东西,目前要实现的是用ffmpeg播放h.264的流,播放一路已经实现了,但我想播放多路时,就会出现FATAL SIGNAL的错误,然后程序挂掉。 VView是JNI接口类,我把它设计成一个单例模式的东东,然后开几个线程调用VView.getDecoder.decoderNal()方法来解码数据,并用这些数据来播放。 不知道
FFmpeg取回标准H.264流后播放的同时存为MP4文件
转自:http://bashell.nodemedia.cn/archives/ffmpeg-save-h264-stream-to-mp4-file.html 上篇使用pipe播放流后,观看的同时,如需保存成文件,使用ffmpeg也是很方便的. 既然已经是标准H264了,那就不需要再编码,直接copy流再muxer 12345 _______            
Jrtplib发送视频文件 + FFMPEG解码+VFW播放视频 (回调方式)
在上篇文章《Jrtplib收发H264文件 + FFMPEG解码+VFW播放视频》 里,我们采用的模式是发送端读取本地H264文件, 把完整的Naul(包含起始码) 逐个发送给接收端,接收端收到后,对单个Naul数据进行解码,然后播放出来。     这其中关键的地方在于,把包含起始码的Naul数据分配给AVPacket对象,然后就可以解码了,如下 AVPacket packe
ffmpeg实战教程(一)Mp4,mkv等格式解码h264和yuv数据
FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。而网上对这些功能的使用大多是基于命令行的。这不利于我们深入学习定制化ffmpeg,今后我将写一系列的用代码实现这些功能的教程供大家学习。这系列的前部分我打算写在windows上的实现,后部分写移植到Android系统上实现。 代码实现的前提是对ffmpeg源码有一定的了解,如果你不了解可以看这里 ffmpeg
【FFMPEG】各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
目录(?)[-] 编解码学习笔记二codec类型编解码学习笔记三Mpeg系列Mpeg 1和Mpeg 2编解码学习笔记四Mpeg系列Mpeg 4编解码学习笔记五Mpeg系列AAC音频编解码学习笔记六H26x系列编解码学习笔记七微软Windows Media系列编解码学习笔记八Real系列编解码学习笔记九QuickTime系列编解码学习笔记十Ogg系列编解码学习笔记十一Flash Video系列
利用FFmpge进行视频解码(从H264视频流到图像)
    同上面所写的两篇文章,本篇依然是介绍FFmpge的相关操作,前一篇讲的是视频压缩,本篇则相反的讲视频的解码。废话不多说,直接上代码吧。     同理于上篇,本篇先设计一个视频解码相关的类,定义如下:   class Ffmpeg_Decoder { public: AVCodecParserContext *avParserContext; AVPacket avpkt; ...
ffmpeg解码后图像呈绿色
///////////////////////////////// 偶然发现 网站:智城 让外包更简单~   有类似项目需求,可参考  http://www.taskcity.com/pages/search_projects_advance?keywords=&category_id=&status=0 ////////////////////////////////
ffmpeg(7):将h264编码的视频流保存为BMP或者JPEG图片
一般我们知道播放视频流的时候是有截图功能的。 所以我想是否可以将视频流保存为BMP或者JPEG 参考: 1.最简单的基于FFMPEG的图像编码器(YUV编码为JPEG) http://blog.csdn.net/leixiaohua1020/article/details/25346147 2.  视频帧保存为BMP #define __STDC_CONSTA
android调用jni使用ffmeg把h264转yuv数据
include include include “libavcodec/avcodec.h”include “libavformat/avformat.h”include “libswscale/swscale.h”include “libavutil/log.h”ifdef ANDROIDinclude include define LOGE(format, …) android_log_pri
FFmpeg的H.264解码器源代码简单分析:概述
本文简单记录FFmpeg中libavcodec的H.264解码器(H.264 Decoder)的源代码。这个H.264解码器十分重要,可以说FFmpeg项目今天可以几乎“垄断”视音频编解码技术,很大一部分贡献就来自于这个H.264解码器。这个H.264解码器一方面功能强大,性能稳定;另一方面源代码也比较复杂,难以深入研究。本文打算梳理一下这个H.264解码器的源代码结构,以方便以后深入学习H.264使用。
基于am335x平台 mjpeg转码h264
最近一直在做应用层的东西,呵呵。简单介绍下:公司am335x平台谈了一个安防方向的应用,基本功能差不多实现,客户提出在特定场景采集视频,然后转码为h264,通过局域网传输到服务器。采集视频采用uvc摄像头,采集格式支持mjpeg,yuv。考虑到两者采集文件都偏大,如果客户端较多,这样造成服务器端网络风暴,因此需要转码为h264. yuv视频格式,相同条件下文件过大,以及一个很现实的问题(am33
web无插件解码播放H264/H265(js解码HTML5播放)
项目意义:长久以来,安防领域的网络摄像机(IPC)的WEB视频直播都依赖于浏览器插件,IE浏览器使用ActiveX插件,Chrome和Firefox浏览器使用NPAPI插件。之所以开发浏览器插件来收流、解码播放IPC的实时视频,是因为早期HTML的发展过于缓慢,在纯web代码无法实现的情况下开发者只能使用插件来辅助。此方法的弊端显而易见,比如用户使用不方便,打开web之后需要点击下载并安装插件才...
编译ffmpeg并支持H264
ffmpeg中自带h264解码,但是没有包含编码,所以再执行avcodec_find_encoder(CODEC_ID_H264)时返回的结果为NULL,需要额外添加x264支持h264的编码。 安装x264 到http://www.videolan.org/developers/x264.html 下载x264的库,然后解压。 ./configure configure过程中可能会遇到
ffmpeg解码命令(包含YUV编码到常见视频格式文件)
1、视频编码 ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec mpeg4 bus_cif.avi//avi ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec mpeg2video bus_cif.VOB//dvd ffmpeg -s 352*288 -pix_
rtsp获取视频帧 ffmpeg解码h264数据 D3D显示yv12数据
代码下载地址:   http://download.csdn.net/detail/mtour/8302907 本代码实现了 通过rtsp协议获取视频流数据,通过ffmpeg解码为yv12数据,通过D3D进行图像显示 整个程序包含 RtspStream模块  H264Decoder模块   D3D模块 RtspStream模块源码可在之前的文章中找到。
FFMPEG 命令行常用方法示例
引言 FFMPEG以其强大的功能而在音视频领域著称,更重要的是它还是开源的!音视频格式转换、裁剪、拼接、提取字幕或某音轨等等,它都能胜任,可谓一把瑞士军刀,小巧但功能强大,是音视频研究的必备利器之一。 示例 1. 转换成H264编解码 ffmpeg -i input_file -vcodec h264 output_file 其中 -i 表示输入文件, -vcodec  h2
学习的第一个FFmpeg-demo---解封装且解码视频后存储为yuv和h.264文件
在大四保研时,接到了一个任务,从最底层书写AVI格式的解封装,并提取YUV数据,再由公式计算对应值。 依稀记得那是一个10bit的avi超大视频,编码是m102和另一个种(保密),因为是从底层写起,所以并没有想太多,就用最基本的的c语言一句一句完成,后来还遇到很多Bug. 听雷博士(http://blog.csdn.net/leixiaohua1020)介绍了关于他关于ffmpeg的研究后,打
基于ffmpeg解码播放rtsp视频流的Delphi源码
利用ffmpeg的动态库以及ffmpeg的Delphi头文件,写了一个播放视频文件或rtsp视频流的播放器,播放效果还可以,但目前没有解码音频。
H264音视频编解码高质量博客
http://blog.csdn.net/wutong_login/article/category/567011 http://blog.csdn.net/wutong_login/article/category/567011
我们是很有底线的