El cliente rtmp proporcionado por srs srs-librtmp

1. Protocolo de protocolo de enlace RTMP

    Ver enlace: https://github.com/ossrs/srs/wiki/v1_CN_RTMPHandshake

2. Descargue la versión srs-master.zip

    Enlace de descarga: https://github.com/ossrs/srs/tree/master

3. SRS puede exportar directamente un proyecto srs-librtmp y compilarlo en .hy .a para su uso. O exportar como .hy .cpp, un archivo grande, el proceso específico es el siguiente:

3.1. SRS 2.0 proporciona una opción de compilación para exportar srs-librtmp. Puede exportar srs-librtmp como un proyecto y compilar por separado para generar .hy .a, lo cual es conveniente para compilar en plataformas Linux y Windows.

    (1) Después de descargar srs, descomprima e ingrese al directorio

       (2) SRS exporta srs-librtmp como un proyecto make independiente, genera bibliotecas estáticas .a y archivos de encabezado .h, y genera todas las instancias de srs-librtmp.

dir=/home/test/srs-librtmp &&
rm -rf $dir &&
./configure --export-librtmp-project=$dir &&
cd $dir && make &&
./objs/research/librtmp/srs_play rtmp://ossrs.net/live/livestream

说明:
//执行该命令在相应的目录
//dir 为自己定义,生成的目录

(3) Resultados

3.2 Exportar directamente a un archivo, proporcionando un caso de uso simple, caso de ejecución

(1) Comando de operación:

dir=/home/TEST/srs-librtmp &&
rm -rf $dir &&
./configure --export-librtmp-single=$dir &&
cd $dir && gcc example.c srs_librtmp.cpp -g -O0 -lstdc++ -o example && 
strip example && ./example

说明:
//example 为一个简单的运行demo

(2) Resultados

4. Compile srs-librtmp en Windows

srs-librtmp solo puede depender de c ++ y socket, y se puede compilar en Windows.

Primero use SRS para exportar srs-librtmp (srs_librtmp.cpp y srs_librtmp.h) como resultado (2), agregue .hy cpp a su propio proyecto, luego compile en VS y modifique el error de compilación que encuentre.

5. Prueba en Windows

#include <stdio.h>
#include "srs_librtmp.h"
int main(int argc, char** argv)
{
	srs_rtmp_t rtmp;

	printf("Example for srs-librtmp\n");
	printf("SRS(ossrs) client librtmp library.\n");
	printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision());

	rtmp = srs_rtmp_create("rtmp://192.168.151.46:1935/live/livestream");
	srs_human_trace("create rtmp success");

	/*
	test
	*/
	int avx_success = -1;
	avx_success = srs_rtmp_handshake(rtmp);
	printf("srs_rtmp_handshake ,avx_success = %d\n", avx_success);
	if (avx_success != 0)
	{
		srs_human_trace("1 ortmp simple handshake fail");
	}
	srs_human_trace("1 ortmp simple handshake success");
	avx_success = srs_rtmp_connect_app(rtmp);
	if (avx_success != 0)
	{
		srs_human_trace("2 ortmp connect vhost/app fail");
	}
	srs_human_trace("2 ortmp connect vhost/app success");
	avx_success = srs_rtmp_publish_stream(rtmp);
	if (avx_success != 0)
	{
		srs_human_trace("3 ortmp publish stream fail");
	}
	srs_human_trace("3 ortmp publish stream success");

	while (1)
	{
	     //send data
	}	
	srs_rtmp_destroy(rtmp);

	return 0;
}

 

Supongo que te gusta

Origin blog.csdn.net/Swallow_he/article/details/89191298
Recomendado
Clasificación