Windows 7下用VS2013编译crtmpserver

2024-06-03 02:32

本文主要是介绍Windows 7下用VS2013编译crtmpserver,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这一篇博客堪称是Win7(Windows 7)下用VS2012(Visual Studio 2012)编译librtmp的姊妹篇,这两个库是进行rtmp开发的经典开源组合。

一.准备工作

1.下载crtmpserver源码crtmpserver-centosinit.rar

下载链接:https://github.com/j0sh/crtmpserver

2.下载并编译crtmpserver的依赖库openSSL

本文主要想说明如何编译crtmpserver,openSSL的编译过程略,只提供其已经编译好的头文件和静态库。


二.开始编译

1.解压crtmpserver-centosinit.rar到E盘,将openSSL的头文件和静态库文件拷贝到E:\crtmpserver-centosinit\3rdparty,如下图所示。


双击E:\crtmpserver-centosinit\builders\VS2010\VS2010.sln,这里虽然是VS2010.sln,却默认是由VS2013打开的。用记事本打开VS1010.sln,前两行如下图所示,说明确实关联到了VS2013。


那就用VS2013编译吧,反正也差不多。这个解决方案一共包含了13个项目,如下图所示。


将编译的选项设置为Release。

2.将openSSL的头文件和静态库文件添加到13个项目中,最好使用相对路径,这样的话项目换到其他目录也不影响编译。需要注意的是,相对路径是相对项目文件.vcxproj的。如下图所示。


libeay32.lib和ssleay32.lib已经被源码维护者添加到了链接器的附加依赖项,如下图所示,我们就不需要添加了。


3.在这13个项目中,common、lua和thelib是基础,crtmpserver是最后需要得到的项目,其他的若干项目是crtmpserver的示例应用。所以需要先编译common、lua和thelib,然后右键解决方案——>重新生成解决方案,幸运的是,编译过程中并无错误,最后在E:\crtmpserver-centosinit\builders\VS2010目录中生成Release文件夹。但是该Release文件夹中包含了一些编译生成的中间文件,双击E:\crtmpserver-centosinit\builders\VS2010目录下的release.bat,可以将这些中间文件删除,删除后的Release文件夹如下图所示。

参考链接http://lgy-047.blog.163.com/blog/static/61346565201481725134264/中提到编译会出现错误,可能因为他是用VS2010进行编译的。



三.启动服务器(重要)

打开命令提示符,进行如下图所示操作来启动服务器。


可是服务器并未启动,所以有网友反映编译成功了,但是启动未看到 go go go (http://ask.csdn.net/questions/72610)。这是因为服务器没有配置好,配置文件crtmpserver.lua是一个Lua脚本,可用为程序提供灵活的扩展和定制功能。

这里先对crtmpserver.lua做基本的配置,让服务器可用启动,更深入的配置等以后用到了再说。

1.在E:\crtmpserver-centosinit\builders\VS2010\Release中新建log和meida文件夹,将crtmpserver.lua中下图蓝色行改为fileName="./log/crtmpserver",,表示日志文件将以crtmpserver为前缀,存储在当前目录(crtmpserver.exe所在目录)的log文件夹中,“./”不要也行。


然后将下图蓝色行改为mediaFolder="./media",。


需要说明的是name="flvplayback",,表示服务器实例的名字,所有的实例都在E:\crtmpserver-centosinit\builders\VS2010\Release\applications目录中,里面的每个文件夹表示一个实例。

mediaFolder表示实例的内容存放的位置,可以任意指定。

“aliases”表示别名组,所以在推拉流时,rtmp地址中的用别名组中的任意一个别名,比如说“live”来代替实例名“flvplayback”,可以达到同样的效果

2.将下图所示部分注释掉,注释方法--[[......]]--,图中给出的是注释后的结果。


其他的配置默认,再次通过命令提示符启动服务,虽然还是失败,但是有提示出现了,如下图所示。


根据提示可以看出,应该是9999端口被占用了,回到crtmpserver.lua,将下图蓝色行的端口改成其他数字,比如说8888。当然,这个错误并不是每个人都会遇到,因为这个端口可能没被占用。


再次通过命令提示符启动服务,这次终于启动成功了,出现了久违的go go go,如下图所示。


关闭服务很简单,Ctrl+C即可,再次启动还是执行指令crtmpserver.exe crtmpserver.lua


四.测试

1.找个.flv格式的视频放在E:\crtmpserver-centosinit\builders\VS2010\Release\media目录中,这里用的是sample.flv。

2.启动服务器。

3.启动VLC播放器,我用的版本是vlc-2.2.4,其他版本为测试。

选择菜单“媒体”——>“流”,在弹出的窗口中选择“网络”标签,如下图所示。


输入图中所示的URL地址,然后点击“串流”按钮,弹出下图所示窗口。


点击“下一步”按钮,弹出下图所示窗口。


勾选“在本地显示”,点击“下一步”按钮,弹出下图所示窗口。


不勾选“激活转码”,这里不需要转码,然后点击“下一步”按钮,弹出下图所示窗口。


点击“流”按钮,开始播放服务器中的sample.flv,如下图所示。

这篇关于Windows 7下用VS2013编译crtmpserver的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1025785

相关文章

Windows下C++使用SQLitede的操作过程

《Windows下C++使用SQLitede的操作过程》本文介绍了Windows下C++使用SQLite的安装配置、CppSQLite库封装优势、核心功能(如数据库连接、事务管理)、跨平台支持及性能优... 目录Windows下C++使用SQLite1、安装2、代码示例CppSQLite:C++轻松操作SQ

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Windows的CMD窗口如何查看并杀死nginx进程

《Windows的CMD窗口如何查看并杀死nginx进程》:本文主要介绍Windows的CMD窗口如何查看并杀死nginx进程问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows的CMD窗口查看并杀死nginx进程开启nginx查看nginx进程停止nginx服务

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

使用Python实现Windows系统垃圾清理

《使用Python实现Windows系统垃圾清理》Windows自带的磁盘清理工具功能有限,无法深度清理各类垃圾文件,所以本文为大家介绍了如何使用Python+PyQt5开发一个Windows系统垃圾... 目录一、开发背景与工具概述1.1 为什么需要专业清理工具1.2 工具设计理念二、工具核心功能解析2.

Windows Server 2025 搭建NPS-Radius服务器的步骤

《WindowsServer2025搭建NPS-Radius服务器的步骤》本文主要介绍了通过微软的NPS角色实现一个Radius服务器,身份验证和证书使用微软ADCS、ADDS,具有一定的参考价... 目录简介示意图什么是 802.1X?核心作用802.1X的组成角色工作流程简述802.1X常见应用802.

windows和Linux安装Jmeter与简单使用方式

《windows和Linux安装Jmeter与简单使用方式》:本文主要介绍windows和Linux安装Jmeter与简单使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows和linux安装Jmeter与简单使用一、下载安装包二、JDK安装1.windows设

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

Python+Tkinter实现Windows Hosts文件编辑管理工具

《Python+Tkinter实现WindowsHosts文件编辑管理工具》在日常开发和网络调试或科学上网场景中,Hosts文件修改是每个开发者都绕不开的必修课,本文将完整解析一个基于Python... 目录一、前言:为什么我们需要专业的Hosts管理工具二、工具核心功能全景图2.1 基础功能模块2.2 进