自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

金石之言

志存高远,行胜于言

  • 博客(87)
  • 问答 (5)
  • 收藏
  • 关注

转载 GDB 反向调试(Reverse Debugging)

使用调试器时最常用的功能就是step, next, continue,这几个调试命令都是“往下执行”的, 但是很多时候会有这种需求:你在调试的过程中多跳过了几步而错过中间过程,这时候不得不重头调试一遍,非常麻烦。而GDB从7.0版本开始支持反向调试功能,也就是允许你倒退着运行程序,或者说撤销程序执行的步骤从而会到以前的状态。 直观地来看,加入你正在使用GDB7.0以上版本的调试器并

2016-04-06 18:07:29 1082 1

转载 如何用GDB进行多线程调试

follow-fork-modefollow-fork-mode的用法为:set follow-fork-mode [parent|child]parent: fork之后继续调试父进程,子进程不受影响。child: fork之后调试子进程,父进程不受影响。因此如果需要调试子进程,在启动gdb后:(gdb) set follow-fork-mode ch

2016-04-06 17:43:09 472

原创 C++标准库Vector & Iterator用法

//程序1#include #include //using namespace std;using std::cin;using std::cout;using std::endl;using std::vector;using std::string;//vector's demo classclass VectorDemo{privat

2015-11-29 12:04:12 840

转载 c++ iterator(迭代器)分类及其使用

 前言:  以下的内容为我阅读c++沉思录18,19,20章的笔记以及自己的想法.正文:  总所周知,c++的stl中提出了iterator的概念,这是C所没有的.在一般的使用中,iterator的行为很像c内建的指针.而在java和c#中索性就直接取消了指针,而采用类似iterator的做法来代替了指针.很多编程人员在使用iterator的时候也仅仅把他当作了指针的一

2015-11-29 11:39:50 434

转载 c++中string类的详解

通过在网站上的资料搜集,得到了很多关于string类用法的文档,通过对这些资料的整理和加入一些自己的代码,就得出了一份比较完整的关于string类函数有哪些和怎样用的文档了!下面先罗列出string类的函数有哪一些,然后再罗列出函数的原型,最后到代码的实现标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用。现将具体用法的一部分罗列如下,只起一个抛砖

2015-11-29 11:32:04 585

原创 _tmain和main之间的关系

用过C的人都知道每一个C的程序都会有一个main(),但有时看别人写的程序发现主函数不是int main(),而是int_tmain(),而且头文件也不是iostream.h>而是stdafx.h>,会困惑吧?一起来看看他们有什么关系吧  首先,这个_tmain()是为了支持unicode所使用的main一个别名而已,既然是别名,应该有宏定义过的,在哪里定义的呢?就在那

2015-11-29 11:05:21 386

原创 C++ map的基本操作和使用

Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map最基本的构造函数;   map mapstring;         mapmapint;   mapmapstring;         mapmapchar;   mapmapchar;

2015-11-29 10:52:55 1150

原创 C++ Vector的基本操作和使用

在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout(5)使用迭代器访问元素.vectorint>::iterator it;for(it=vec.begin(

2015-11-29 10:45:37 586

原创 关于 error while loading shared libraries: libfaac.so.0: cannot open shared object file: No such fi

进入/etc/目录下,新建一个faac.conf,其内容如下所示执行sudo ldconfig

2015-10-09 10:46:30 1353

原创 裁剪ffmpeg2.7.2,支持H264以及Udp(大小在1M左右,已验证可用)

#!/bin/bashNDK=/home/ubuntu/Downloads/android-ndk-r10dSYSROOT=$NDK/platforms/android-9/arch-arm/TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64function build_one{./con

2015-10-06 15:03:52 796

原创 wireshark如何筛选协议包

1、根据目的地址或者源地址过滤(udp.port==xxx,tcp.port == 554等)可以过滤出有用的UDP、TCP包,2、可以Decode AS 成RTP或者RTSP。3、如果知道SDP信息,在分析RTP时,还可以用Edit—>Preferences在Protocols里面选H264等,直接可以解析成H264的Pay Load,是不是IDR Slice的信息也都可以看到了

2015-09-28 14:17:42 6951

原创 relocation error: /usr/lib/libswresample.so.1: symbol av_calloc, version LIBAVUTIL_54 not defined i

* 下载ffmpeg和x264的源码这个自己google* 配置文件选项./configure --enable-shared --enable-shared --enable-gpl --enable-nonfree --enable-x11grab --enable-libmp3lame --enable-libtheora --enable-libx264 --e

2015-09-17 20:24:16 2395

原创 分割音视频,成独立的音频es数据和独立的视频es数据

视频可以用ubuntu自带的videos软件可以播放,音频播放不了。。#include #include "libavformat/avformat.h" static const char *media_file = "11.mp4";int main(void){ int i, vid_idx, aud_idx; FILE *fp_vides = NULL, *f

2015-09-17 19:44:49 933

原创 解析ffmpeg-2.8自带例子decoding_encoding.c了解如何解析音视频流程

FFmpeg自带的例子注释和个人见解,有什么问题请大家指正。 /* libavcodec API use example. * * @example decoding_encoding.c * Note that libavcodec only handles codecs (mpeg, mpeg4, etc...), * not file formats (avi, vob, mp4

2015-09-17 14:07:07 1930

原创 makefile 分析

# use pkg-config for getting CFLAGS and LDLIBSFFMPEG_LIBS= libavdevice \ libavformat \ libavfilter

2015-09-14 11:43:57 529

原创 FFMpeg APIchanges

Never assume the API of libav* to be stable unless at least 1 month has passedsince the last major version increase or the API was added.The last version increases were:libavcodec:    2014-0

2015-09-14 10:51:08 1468

转载 wav与pcm数据

参考下这个WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource InterchangeFileFormat的缩写,每个WAVE文件的头四个字节便是“RIFF”。WAVE文件由文件头和数据体两大部分组成。其中文件头又分为RIFF/WAV文件标识段和声音数据格式说明段两部分。WAVE文件各部分内容及格式见附表。  常见的声音文件主要有两

2015-09-14 09:32:59 1441

转载 PCM数据格式

1. 音频简介      经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等.     44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声);     22050HZ 8bit  mono: 每秒钟有 22050 次采样, 采

2015-09-14 09:28:00 556

原创 安装SDL

2.安装SDL:因为ubuntu里面有SDL,所以直接在命令窗口输入以下就可以了:sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev libsdl-ttf2.0-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-sound1.2-dev检测SDL装上了没有:sdl-co

2015-09-13 17:17:50 465

原创 交叉环境下,配置ffmpeg的configure时指定交叉编译参数

交叉环境下,配置ffmpeg的configure时指定交叉编译参数,估计大概如下面的配置:./configure --prefix=./install --disable-static --enable-shared --enable-gpl --enable-pthreads --cross-prefix=arm-none-linux-gnueabi- --enable-cross-co

2015-09-13 16:36:43 1158

原创 /usr/bin/ld: warning: libswresample.so.1, needed by /usr/lib/gcc/i686-linux-gnu/4.9/../../../../lib/

解决方案:gcc -o ffmpegtest acc.c -lavformat -lavcodec -lavutil -lz -lm -lswresample

2015-09-13 16:22:21 2849 1

转载 ffmpeg 新老接口问题及对照集锦

网上很多关于ffmpeg (libav)的资料都是N年以前的,而事实上ffmpeg数年来一直在“以时俱进”,因此无论是一些新手,或者号称为老手的人,有时候难免出头痛。。。。。。为了解决大家的头痛的问题,特列一个贴子,把ffmpeg相关的一些常见的、版本的问题列举出来,供大家参考,同时也请大家一起补充。1) 不认识guess_format.解决:  #define guess

2015-09-13 15:56:59 431

转载 使用ffmpeg库编译错误及解决办法

一、FFmpeg源代码下载与编译# wget http://www.ffmpeg.org/releases/ffmpeg-0.5.13.tar.bz2# tar -jxvf ffmpeg-0.5.13.tar.bz2# vim ffmpeg_configure.sh./configure \--prefix=/YOUR_INSTLL_DIRECTORY \--enabl

2015-09-13 12:59:41 3100

转载 使用gdb和core dump迅速定位段错误

使用gdb和core dump迅速定位段错误关键字:gdb、段错误、core dump 一、什么是core dump    core:内存、核心的意思;    dump:抛出,扔出;    core dump:前提:当某程序崩溃的一瞬间,内核会抛出当时该程序进程的内存详细情况,存储在一个名叫core.xxx(xxx为一个数字,比如core.699

2015-09-13 10:46:42 493

转载 使用Backtrace函数打印调用栈 - Debug居家必备

glibc提供了backtrace这个库函数,可以用来打印call stack。比如我们可以在程序中注册常见的一些signal,比如SIGSEGMENT, SIGPIPE,然后在这些信号的回调函数中,利用backtrace打印出call stack,这样debug就非常的方便。 backtrace的使用很简单,使用man手册中的Example代码即可,例如: 

2015-09-13 10:45:26 1285

转载 用GDB调试程序

目录(?)[+]用GDB调试程序目录[隐藏]1 使用GDB2 GDB的命令概貌3 GDB中运行UNIX的shell程序4 在GDB中运行程序5 调试已运行的程序6 暂停/恢复程序运行6.1 设置断点(Break Points)6.2 设置观察点(WatchPoint)6.3 设置捕捉点(CatchPoi

2015-09-13 10:30:55 291

转载 gdb core 调试(ZZ)

http://blog.163.com/lanka83/blog/static/32637615200801793020182/http://blog.csdn.net/taina2008/archive/2007/08/09/1733464.aspx1. 前言:有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的.但

2015-09-13 10:28:10 425

转载 GDB调试精粹及使用实例

一:列文件清单 1. List (gdb) list line1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符()和外壳通配符(*、?、[、])在内。 如果你使用不带参数的run命令,gdb就再次使用你给予前一条run命令的参数,这是很有用的。 利用set args 命令就可以

2015-09-13 10:26:33 394

转载 GDB 使用与示例

GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:1、启动你的程序,可

2015-09-13 10:25:00 377

转载 GDB 用法和命令介绍

分类:2013-10-24 15:02 186人阅读 评论(0) 收藏 举报一、GDB常用命令简介 rrun运行.程序还没有运行前使用c            cuntinue  运行到下一断点处qquit                       退出tabtab命令补全功能h

2015-09-13 10:23:07 335

原创 ffmpeg配置

./configure –enable-static –enable-version3 –enable-gpl –enable-nonfree –enable-libfdk-aac –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-libvo-aacenc –enable-libvo-amrwbenc –enable-libmp3

2015-09-13 10:07:18 6359

原创 ubuntu下ffmpeg编译安装 -只支持h264解码,输出为yuv420

0、下载gitsudo apt-get install git1、下载FFmpeg源码:sudo git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg2、下载yasmsudo apt-get install yasm3、configuresudo ./configure --prefix=/usr/local/F

2015-09-12 15:24:18 1189

转载 pthread_create如何传递多个参数

http://zhidao.baidu.com/question/315398992.html涉及多参数传递给线程的,都需要使用结构体将参数封装后,将结构体指针传给线程定义一个结构体struct mypara{       var para1;//参数1       var para2;//参数2}将这个结构体指针,作为void *形参的实际参数传递st

2015-08-31 15:37:19 4337

原创 移植lame-3.99.5库

1、下载lame源码: http://sourceforge.net/projects/lame/files/lame   tar -zxvf  lame-3.99.5.tar.gz 2、./configure CC=arm-linux-gcc--host=arm-linux--target=linux--disable-shared--prefix=$PWD/output

2015-08-29 16:18:26 1953

原创 如何算音频PTS

以采样8000hz为例,也就是说1秒种会有8000个采样,我的DSP采集上来的数据是以576个采样为一帧。AudioNum = 8000/576个音频帧。1000/AudioNum = 每个音频所占用的毫秒数(ns)ns*90=PTS。http://blog.163.com/tianyang%40yeah/blog/static/702238372010726225

2015-08-26 21:57:05 2247

转载 视频、音频打时间戳的方法及其音视频同步(播放)原理

视频、音频打时间戳的方法 http://blog.csdn.net/wfqxx/article/details/54971381. 视频时间戳     pts = inc++ *(1000/fps);  其中inc是一个静态的,初始值为0,每次打完时间戳inc加1.    在ffmpeg,中的代码为    pkt.pts= m_nVideoTimeS

2015-08-26 17:46:43 19486

原创 MP3头部结构体定义(一)

//MP3头结构体typedef struct Tag_Mp3_Header{ unsigned int sync :11; //同步信息 unsigned char version :2; //版本 unsigned char layer :2; //层 unsigned char

2015-08-24 14:39:34 1282

原创 PCM转MP3音频文件(借助lame库)

pcm2mp3.c#include #include #include #define INBUFSIZE 4096#define MP3BUFSIZE (int) (1.25 * INBUFSIZE) + 7200int encode(char* inPath, char* outPath) { int status = 0; lame_global_flags* gfp

2015-08-24 13:31:36 5849 2

转载 从视频文件提取音频并存储为MP3格式文件

在linux世界里,进行视频格式转化的软件有很多,其中大名鼎鼎的ffmpeg和mplayer下的mencoder。本文主要介绍如何从视频文件中提起音频,同时保存成mp3格式的文件。格式转换其实就是经过解码和重新编码两个过程,如果系统不存在对应的解、编码器,就需要额外安装。ffmpeg自带了MP2格式的编码器,对于MP2格式的音频,普通电脑上的播放器似乎都能支持,但大部分手机的播放器不支持,

2015-08-24 13:25:09 4081 2

转载 extern用法

1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。2 问题:extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外一个文件里用下列语句进行了声明:extern char *a; 请问,这样可以吗? 答案与分析: 

2015-08-24 11:02:52 332

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除