文档章节

移植FFMPEG到VS2008系列之四

abcijkxyz
 abcijkxyz
发布于 2016/11/22 16:45
字数 630
阅读 1
收藏 0
点赞 0
评论 0

这部分主要是引入第三方库,还有就去去除无关的测试代码。


7. 引入第三方库


    必须引入的第三方库为zdll.lib,这个库在网上可以下载到,如若不加入这个库,很多的函数将链接不到。还有在avcodec文件夹下面以lib打头的文件都是为引入第三方库而进行的接口封装,以适应ffmpeg去调用的相关代码。最重要的例如libx264,libmp3lame.lib libfdk_aac等。我的x264采用我自己用vs2008编译的版本,其它的库也基本上采用vs的版本。暂时不想加入的库,例如libspeex等可以把这些代码移出。


8. 去除冗余和暂时不相关的代码。


     之前我们把所有的c文件都添加进来,其实有些是没有必要的。例如有些c文件里面有一个main函数,它仅仅是为了测试某个函数接口应用而存在的,这样的c文件是可以移除。另外,文件名包含template关键字的文件也必须要移除,因为这样的文件已经被include到其它文件里面的。如若不移除,单独编译这个文件会产生大量的编译错误。另外与网络相关的模块也可以暂时移除,当然也可以在tcp.c文件里面加入windows上的库ws2_32.lib解决链接错误。


9. 初始化全局结构体变量


    在前面一部分,对于结构体的初始化,我们用了一个函数去做。所以,在程序刚刚起来的时候,必须调用这些函数去初始化所有的全局结构体变量。由于这样的结构体变量初始化函数太多太多,不太可能用复制粘贴的方法。一种可行的方法是,在vs开发环境里面切换到class view选项里面找到Global functions and variables,选中所有的初始化结构体的函数,然后复制到一个文本文件里面,再写一个简单的正则表达式,将其转换为函数调用的格式。前面提到的文件g_var_func_init.c就是自己添加的这些函数调用的代码,用以初始化全局结构体变量。



综上所述,排除完所有的编译错误和链接错误,你就可以在vs2008下面调试ffmpeg的代码了。







© 著作权归作者所有

共有 人打赏支持
abcijkxyz
粉丝 61
博文 6195
码字总数 1876
作品 0
深圳
项目经理
最新靠谱可用的 Mac 环境下 FFmpeg 环境搭建

大家好,我是光源。 最近在尝试搭建 FFmpeg 开发环境时遇到一个蛋疼的事,Google 了 N 篇文章竟然没有一篇是可以跑起来的! 少部分教程是给出了自我矛盾的配置(是的,按照贴出来的代码和配置...

光源_Android ⋅ 05/13 ⋅ 0

part02_编译android平台使用的FFmpeg动态库

一、ffmpeg源码目录 一、安装ndk 二、ffmpeg编译 1.下载ffmpeg2.6.9(这个版本比较稳定) wget http://ffmpeg.org/releases/ffmpeg-2.6.9.tar.gz 2.解压 tar -xzf ffmpeg-2.6.9.tar.gz 3.进入......

IT魔幻师 ⋅ 05/09 ⋅ 0

FFmpeg 4.0.1 版本发布,多媒体处理工具合集

FFmpeg 4.0.1 已发布,FFmpeg 是用于处理音频、视频、字幕和相关元数据的多媒体内容的库和工具的合集。 库: 提供广泛的编解码器实现 流协议、容器格式和基本 I / O 访问实现 hashers、decom...

王练 ⋅ 昨天 ⋅ 0

FFMPEG命令行处理视频进阶——高阶必读

FFMPEG拥有强大的视频处理能力,可惜的是有很多人不知道如何使用。本文深入介绍如何用编译好ffmpeg.exe程序处理视频,既有常用的简单的处理,也有一些比较少见的高大上的处理,一定能让你受益...

zhangamxqun ⋅ 05/13 ⋅ 0

(iOS) FFmpeg iOS 上的安装(可以指定任意版本) 一

一、准备部分 1、去FFmpeg官网下载所需要的版本的源码:官网源码下载地址 2、安装Homebrew: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ...

wf990051004 ⋅ 04/26 ⋅ 0

android端采用FFmpeg进行音频混合与拼接剪切

接触FFmpeg有一段时间了,它是音视频开发的开源库,几乎其他所有播放器、直播平台都基于FFmpeg进行二次开发。本篇文章来总结下采用FFmpeg进行音频处理:音频混合、音频剪切、音频拼接与音频转...

mp624183768 ⋅ 05/13 ⋅ 0

ONVIF协议网络摄像机(IPC)客户端程序开发(12):读取音视频流

1 专栏导读 本专栏第一篇文章「专栏开篇」列出了专栏的完整目录,按目录顺序阅读,有助于你的理解,专栏前面文章讲过的知识点(或代码段),后面文章不会赘述。为了节省篇幅,突出重点,在文...

benkaoya ⋅ 2017/05/19 ⋅ 0

centos上安装ffmpeg

FFmpeg介绍 FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的...

水墨如丹青 ⋅ 04/13 ⋅ 0

CMake编译OpenCV中遇到的问题

0 有以下五个文件无法下载,导致编译失败 ffmpegversion.cmake opencvffmpeg.dll opencvffmpeg64.dll ippicv2017u2winintel6420170418.zip ippicv2017u2winia3220170418.zip 1 需要自己“合成......

chenxi1900 ⋅ 04/26 ⋅ 0

Mac brewinstall自动更新后,造成库之间依赖关系出错,如何还原到以前版本?

1、brew search ffmpeg 看看brew软件包管理器中有哪些版本? 一眼难以看出ffmpeg对应版本,可以结合ffmpeg官网或者是下载下来,再查看版本,这里我就直接告知ffmpeg有4.0和2.8的版本;或许你...

rouzhiwei3128 ⋅ 05/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

开启远程SSH

SSH默认没有开启账号密码登陆,需要再配置表中修改: vim /etc/ssh/sshd_configPermitRootLogin yes #是否可以使用root账户登陆PasswordAuthentication yes #是都开启密码登陆ser...

Kefy ⋅ 27分钟前 ⋅ 0

Zookeeper3.4.11+Hadoop2.7.6+Hbase2.0.0搭建分布式集群

有段时间没更新博客了,趁着最近有点时间,来完成之前关于集群部署方面的知识。今天主要讲一讲Zookeeper+Hadoop+Hbase分布式集群的搭建,在我前几篇的集群搭建的博客中已经分别讲过了Zookeep...

海岸线的曙光 ⋅ 34分钟前 ⋅ 0

js保留两位小数方法总结

本文是小编针对js保留两位小数这个大家经常遇到的经典问题整理了在各种情况下的函数写法以及遇到问题的分析,以下是全部内容: 一、我们首先从经典的“四舍五入”算法讲起 1、四舍五入的情况...

孟飞阳 ⋅ 52分钟前 ⋅ 0

python log

python log 处理方式 log_demo.py: 日志代码。 #! /usr/bin/env python# -*- coding: utf-8 -*-# __author__ = "Q1mi""""logging配置"""import osimport logging.config# 定义三种......

inidcard ⋅ 今天 ⋅ 0

mysql 中的信息数据库以及 shell 查询 sql

Information_schema 是 MySQL 自带的信息数据库,里面的“表”保存着服务器当前的实时信息。它提供了访问数据库元数据的方式。 什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,...

blackfoxya ⋅ 今天 ⋅ 0

maven配置阿里云镜像享受飞的感觉

1.在maven目录下的conf/setting.xml中找到mirrors添加如下内容,对所有使用改maven打包的项目生效。 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.al......

kalnkaya ⋅ 今天 ⋅ 0

centos7下创建新用户并授权

1、创建新用户 创建一个用户名为:test adduser test 创建初始密码: passwd test 2、授予root权限 个人用户的权限只可以在/home/test下有完整权限,其他目录要看别人授权。而经常需要roo...

xixingzhe ⋅ 今天 ⋅ 0

求助:TiledMap如何旋转对象呢?

比如我要旋转一个梯子的角度,单纯在TiledMap旋转角度好像没有效果。那是要用代码来控制角度,还是说只能通过导入相对应的斜的图片才可以呢?

花谢自相惜 ⋅ 今天 ⋅ 0

Micronaut 之HelloWorld!

小试一下Micronaut,按照官方文档跑了一下helloworld 第一步克隆,按照官方文档是: git clone git@github.com:micronaut-projects/micronaut-core.git 结果怎么是这样?? 换个方法吧 git ...

桂哥 ⋅ 今天 ⋅ 0

pom文件

Aeroever ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部