精华内容
下载资源
问答
  • TS转UDP流工具

    2021-05-20 17:16:14
    UdpTsAnalyser软件可以把TS文件udp,也可以把UDP协议的TS文件收下来进行分析。 下载

    UdpTsAnalyser软件可以把TS文件转成udp,也可以把UDP协议的TS文件收下来进行分析。

    下载

    展开全文
  • 主要做对UDP发送的H264 AAC的音视频TS流做解包并重新打包成RTMP需要的格式,并推送至服务器,实现视频直播。 由于在前端是以H264 AAC编码,所以在后期实时封装RTMP时不需要重新编码,缩短了封装推流的时间。输入源为...
  • /* Project by qiuliangbin copyright 2015-2018*/ /* Just for learning; */ /* Function:Use Rtp Transmition send Ts to VLC Media player*/ #include #include #include #include
    /* Project by qiuliangbin copyright 2015-2018*/
    /* Just for learning;                        */
    /* Function:Use Rtp Transmition send Ts to VLC Media player*/
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <string.h>
    
    #include <winsock2.h>
    #include <winsock2.h>
    
    
    #define PACKET_BUFFER_END            (unsigned int)0x00000000
    
    #define DEST_IP                "192.168.1.114"
    #define DEST_PORT            5678
    #define MP2T                    33
    
    typedef struct 
    {
        /**//* byte 0 */
    	/*数据源的个数(即源的个数),如果只有一个源那么此时的值为0*/
        unsigned char csrc_len:4;        /**//* expect 0 */
    	/*扩充位,如果设置为允许的话,固定头结构后面(即包的12个字节后面,有效负载的前面)紧跟着一个扩展头结构,该结构是已定义的一种格式*/
        unsigned char extension:1;        /**//* expect 1, see RTP_OP below */
        /*是否填充,如果设置为允许填充的话,在包的末尾填充一个或多个字节,这些填充的字节不是有效负载的一部分。*/
    	unsigned char padding:1;        /**//* expect 0 */
    	/*RTP版本号*/
        unsigned char version:2;        /**//* expect 2 */
        /**//* byte 1 */
    	/*有效负载,RTP数据的有效负载(不包括头12个字节),由具体的应用程序来确定负载的格式和意义。官方文档里有表格说明,该表格显示了格式代码和具体格式的对应关系,附加的格式代码可能不在RTP协议里定义。*/
        unsigned char payload:7;        /**//* RTP_PAYLOAD_RTSP */
    	/*标识,在文档中是这样定义的,它有意标识重要的事物比如:在流媒体中标识一帧数据的边界(结束或开始)*/
        unsigned char marker:1;        /**//* expect 1 */
        /**//* bytes 2, 3 */
    	/*数据包序号,发送的RTP数据包序号,接收端可用它来检查丢失的数据包和确定保存数据包次序*/
        unsigned short seq_no;            
        /**//* bytes 4-7 */
    	/*时间戳, 纪录了RTP数据包中第一个字节的采样时间,采样时间必须源自一个时间增量且允许同步和计算*/
        unsigned  long timestamp;        
        /**//* bytes 8-11 */
    	/*同步标识, 是一个随机数,在同一个RTP会话中只有一个同步标识。*/
        unsigned long ssrc;            /**//* stream number is used here. */
    } RTP_FIXED_HEADER;
    
    BOOL InitWinsock();



    // TsDecoder.cpp : Defines the entry point for the console application.
    //
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <memory.h>
    #include "hTs.h"
    
    FILE *bits = NULL;                //!< the bit stream file
    FILE *bitsout = NULL;
    #define PACKET_SIZE 188
    #define GIVE_UP 1024
    #define MTU 1590
    int max_size = 800000;
    int count = 0;
    char buffer[200000] = {0};
    
    RTP_FIXED_HEADER        *rtp_hdr;
    
    
    
    void OpenBitstreamFile (char *fn)
    {
    	if (NULL == (bits=fopen(fn, "rb")))
    	{
    		printf("open file error\n");
    		exit(0);
    	}
    }
    void OpenBitstreamoutFile (char *fn)
    {
    	if (NULL == (bitsout=fopen(fn, "wb")))
    	{
    		printf("open out file error\n");
    		exit(0);
    	}
    }
    BOOL InitWinsock()
    {
        int Error;
        WORD VersionRequested;
        WSADATA WsaData;
        VersionRequested=MAKEWORD(2,2);
        Error=WSAStartup(VersionRequested,&WsaData); //启动WinSock2
        if(Error!=0)
        {
            return FALSE;
        }
        else
        {
            if(LOBYTE(WsaData.wVersion)!=2||HIBYTE(WsaData.wHighVersion)!=2)
            {
                WSACleanup();
                return FALSE;
            }
            
        }
        return TRUE;
    }
    
    
    int GetAnnexbTS()
    {	
    	int n = 0;
    	int FrameNum = 0;
    	unsigned char *Buf;
    
    	if ((Buf = (unsigned char*)calloc (max_size , sizeof(char))) == NULL) 
    	  printf ("GetAnnexbNALU: Could not allocate Buf memory\n");
    
    	/* Sync */
    	while (1) 
    	{
    		if (1 != fread (Buf, 1, 1, bits))//从码流中读3个字节
    		{
    			free(Buf);
    			return 0;
    		}
    		if(Buf[0] == 0x47)
    		{
    			int ncount =0;
    			if ((n=fread(&Buf[1],1,PACKET_SIZE-1,bits)) == 187)
    			{
    				int readonebit = fgetc(bits);
    				if ( readonebit== 0x47) 
    				{
    					FrameNum ++;
    					if (0 != fseek (bits, -1 , SEEK_CUR))//把文件指针向后退开始字节的字节数
    					{
    						free(Buf);
    						printf("GetAnnexbNALU: Cannot fseek in the bit stream file");
    					}
    					break;
    				}
    				if(readonebit == feof(bits))
    				{
    					//Frame 1~6 表示文件传输
    				//	FrameNum = 0;//表示文件传输结束 
    					return -1; //到文件末尾了
    				}
    				else
    				{
    					return -2;//忽略这一帧,在文件中有帧被破坏不需要对他做特别处理,直接存储
    				}
    			}    
    				
    		}
    	}
    	memcpy (buffer, &Buf[0],188);
    	free(Buf);
    	return FrameNum;
    }
    
    int main(int argc, char* argv[])
    {
    	int Ts_RetVal=0;
    	int Fmno = 0;
    	int	bytes=0;
    	int position=0;
    	unsigned short seq_num =0;
    	OpenBitstreamFile("./222.ts");
    	OpenBitstreamoutFile("./66666.ts");
    	char sendbuf[1500];
    
    	InitWinsock(); //初始化套接字库
    	SOCKET    socket1;
    	socket1=socket(AF_INET,SOCK_DGRAM,0);
    	SOCKADDR_IN  server;
        int len =sizeof(server);
    
    	float framerate=30;
    	unsigned int timestamp_increse=0,ts_current=0;
    	timestamp_increse=(unsigned int)(90000.0 / framerate); //+0.5);
    
    	server.sin_family=AF_INET;
        server.sin_port=htons(DEST_PORT);          
        server.sin_addr.s_addr=inet_addr(DEST_IP); 
        
       // connect(socket1, (const sockaddr *)&server, len) ;//申请UDP套接字
    	int count = 0 ;
    
    	memset(sendbuf,0,1500);
    	while(!feof(bits)) {
    		if ((Ts_RetVal=GetAnnexbTS()) == -1)
    		{
    			break;
    		}
    		Fmno += Ts_RetVal;
    		memcpy(&sendbuf[12+(Fmno-1)*188],buffer,188);
    
    		position = position + 188;
    //		fwrite(&sendbuf[12+(Fmno-1)*188],1,PACKET_SIZE,bitsout);
    		if ((Fmno == 7)&&(position >= 188*7))
    		{			
    			rtp_hdr =(RTP_FIXED_HEADER*)&sendbuf[0];
    			//设置RTP HEADER,
    			rtp_hdr->payload     = MP2T;  //负载类型号,
    			rtp_hdr->version     = 2;  //版本号,此版本固定为2
    			rtp_hdr->marker    = 0;   //标志位,由具体协议规定其值。
    			rtp_hdr->ssrc        = htonl(10);    //随机指定为10,并且在本RTP会话中全局唯一
    			rtp_hdr->marker=1;
    			rtp_hdr->seq_no     = htons(seq_num ++); //序列号,每发送一个RTP包增1
    			ts_current=ts_current+timestamp_increse;
    			rtp_hdr->timestamp=htonl(ts_current);
    
    			bytes=7*188 + 12 ;
    			sendto(socket1,&sendbuf[12],bytes-12,0,(SOCKADDR*)&server,sizeof(SOCKADDR));
    		//	send( socket1, &sendbuf[12], bytes-12, 0 );//发送rtp包
    			fwrite(&sendbuf[12],1,7*188,bitsout);
    			position = 0;
    			Fmno = 0;
    			memset(sendbuf,0,1500);
    		}	
    	//	dump(buffer,Fmno);	
    	}
    
    	if((position>0)&&(Fmno>0))//发最后一帧
    	{
    	//	memset(sendbuf,0,1500);
    		rtp_hdr =(RTP_FIXED_HEADER*)&sendbuf[0];
    
    		//设置RTP HEADER,
    		rtp_hdr->payload     = MP2T;  //负载类型号,
    		rtp_hdr->version     = 2;  //版本号,此版本固定为2
    		rtp_hdr->marker    = 0;   //标志位,由具体协议规定其值。
    		rtp_hdr->ssrc        = htonl(10);    //随机指定为10,并且在本RTP会话中全局唯一
    
    		rtp_hdr->marker=1;
    		rtp_hdr->seq_no     = htons(seq_num ++); //序列号,每发送一个RTP包增1
    
    		int icount = 0;
    
    //		memcpy(&sendbuf[12],buffer,188);
    
    		ts_current=ts_current+timestamp_increse;
    
    		rtp_hdr->timestamp=htonl(ts_current);
    		bytes=188*Fmno+ 12 ;
    		
    //		send( socket1, &sendbuf[12], bytes-12, 0 );//发送rtp包	
    		fwrite(&sendbuf[12],1,188*Fmno,bitsout);
    	}
    //	free(buffer);
    	fclose(bits);
    	fclose(bitsout);
    	return 0;
    }
    


    展开全文
  • TS_UDP_PCR控制发送速率_本地文件_1

    热门讨论 2013-02-20 16:16:42
    TS_UDP_PCR控制发送速率_本地文件_1
  • mpeg_streamer 是一个可以读取 mpegts 文件并通过 UDP 传输它们的应用程序。 它没有外部依赖。 UDP 流控制是通过从文件中读取 PCR 信息来完成的。 您还可以通过调用mpeg_streamer_server:info/1方法来分析正在...
  • UDP_RTP+MPEG2-TS浅析

    2017-02-10 17:38:13
    http://blog.csdn.net/chen495810242/article/details/39207305
    http://blog.csdn.net/chen495810242/article/details/39207305
    展开全文
  • 通过前端设备得到单节目流的TSUDP协议),用800Li协议流软件(外部信号适配器软件)即可成RTMP进入800Li  Flash P2P 流媒体直播系统 在互联网进行网络分发,从而可以在PC,手机,机顶盒上进行观看电视节目。...

    采集卫星电视信号,需要采集的前端设备,即采集信号转换成IP(SPTS)的设备。包括了3个种类:

    1.     把卫星信号转换成IP码流信号的设备

    2.     把压缩的音视频(包括复合视频,HDMI,SDI)转换成IP码流的设备

    3.     把加密的卫星节目或者本地的加密节目转换成IP码流的设备

     

    1.    八路IP卫星接收机(IPTV)概述

    八路IP卫星接收机支持8路DVB-S/ DVB-S2卫星射频信号输入,输入信号被解调成TS流,再封装成IP (TS over UDP)格式,并通过1路千兆网口输出64路IP(SPTS)流,主要应用于IPTV直播系统的射频信号转播。一台设备可以解决64套节目的转发,性价比超强。

    特点

    u  支持DVB-S、DVB-S2(选件)卫星信号输入(共8路射频F头输入)

    u  支持TS over UDP输出

    u  支持输入、输出信号的实时监测

    u  支持中英文液晶显示,前面板按键操作和远程网管控制

    u  高可靠性设计,运行稳定

    2.    八路HDMI高清编码器概述

    八路HDMI高清编码器支持8路HDMI高清信号输入,通过H.264视频和MPEG-1音频编码形成TS复用流,输出接口为ASI和IP(TS over UDP)。主要应用于数字电视前端直播系统的高清信号转播。

    特点

    u  采用全硬件压缩,实时性强,性能稳定

    u  支持1080P/I,720P等多种格式

    u  支持所有采样率(32KHz、44.1KHz、48KHz等)的音频信号输入

    u  支持音量调节

    u  采用高清HDMI 接口,支持HDCP

    u  支持中英文液晶显示,前面板按键操作和远程网管控制

    3.    八合一编码器概述

    八合一编码器支持8路模拟复合视频以及单声道或立体声输入,通过MPEG-2视频和MPEG-1音频编码形成8路复用码流(8*SPTS)。输出接口为ASI和IP(TS over UDP)。该设备具有高集成,低成本的优势,可广泛应用于无线/有线/IPTV等数字电视播出系统中。

    特点

    u  采用全硬件压缩,实时性强,性能稳定

    u  8路CVBS视频和8组非平衡立体声音频输入

    u  支持所有采样率(32KHz、44.1KHz、48KHz等)的音频信号输入

    u  支持MPEG-2 MP@ML (4:2:0)编码

     

    u  支持中英文液晶显示,前面板按键操作和远程网管控制

     

    通过前端设备得到单节目流的TS(UDP协议),用800Li转协议流软件(外部信号适配器软件)即可转成RTMP进入800Li Flash P2P 流媒体直播系统在互联网进行网络分发,从而可以在PC,手机,机顶盒上进行观看电视节目。 



    展开全文
  • * */ #include #include #pragma comment(lib, "ws2_32.lib") #pragma pack(1) /* * [memo] FFmpeg stream Command: * ffmpeg -re -i sintel.ts -f mpegts udp://127.0.0.1:8880 * ffmpeg -re -i sintel.ts -f rtp_...
  • 经过IP网络卫星接收机会主动推送TS over UDP 的SPTS (单播节目流),那么如何将UDP流转接成RTMP进入P2P流媒体服务器直播系统呢?答案是800Li 外部信号适配器软件! 特点: ü 转接各种网络协议包括RTSP, ...
  • UDPTS流采集工具

    2014-07-09 17:23:54
    UDPTS流采集工具,可以捕获TS流成文件。
  • gst-launch-1.0 -vv udpsrc uri=udp://239.254.33.34:3334 caps="video/mpegts" ! queue2 use-buffering=true max-size-buffers=1000 ! tsparse ! decodebin ! videoconvert ! videoscale ! xvimagesink queue2 ...
  • 为简单处理,我这里只简单介绍UDP接收TS流,其实只要是socket接收的都可以类似处理。 /* main.c Created on: 2011-9-18 Author: wudegang */ #include “utils.h” #include <pt...
  • TS推流工具

    2018-09-20 18:55:22
    ts推流工具,udp推流工具,内附实用的使用说明书.....
  • 本地E盘有文件roundDeskS02E01.mp4,通过udpts流到组播地址如下: E:\BaiduNetdiskDownload>ffmpeg -i roundDeskS02E01.mp4 -f mpegts udp://224.0.0.1:9922 ffmpeg version git-2020-03-06-cfd9a65 Copyright...
  • Android接收UDP TS流实现边缓存边播放

    万次阅读 热门讨论 2014-11-06 09:23:53
    * 接收UDP TS流实现边缓存边播放 * 该类可以实现,但存在以下不足 * 1、播放过程会稍微卡一下这是 由于播放时候setOnCompletionListener中方法被执行 * 2、需要思考怎么解决调用onError方法 * @...
  • ffmpeg h264+ts +udp传输

    千次阅读 2014-02-18 10:14:42
    ffmpeg h264+ts +udp传输 http://www.cnblogs.com/pengkunfan/p/3501187.html http://bbs.csdn.net/topics/370246456 http://1229363.blog.163.com/blog/static/19743427201001244711137/ 
  • 当你写程序去接收vlc发送的ts流时,你会发现解析出来的一帧视频帧有时候解码会失败,追究其原因,是因为前4个字节不是0,0,0,1。 那为什么会这样呢? 这是因为vlc在处理大于65535字节的视频帧时,没有按照ISO标准来...
  • HLS转UDP协议转换器的实现

    千次阅读 2017-11-29 16:39:41
    由于业务的需要,笔者所处的业务环境内的视频传输基本采用的是UDP的方式,为了便于对各类型的视频源进行...本文探索了对HLS视频流媒体服务提供的索引文件下载、索引文件内容分析、TS切片下载、UDP转发的基础业务流程。
  • 推送UDP MPEGTS丢包问题 请加上pkt_size =7*188 = 1316即可 ffmpeg -re -i yung.flv -vcodec copy -acodec copy -f mpegts "udp://@231.0.16.200:7001?pkt_size=1316
  • 为了接收多播流,您需要创建一个多播客户端,该客户端具有用于存储视频...使用ffmpeg开始将mp4视频文件流式传输到多播地址和端口 .ffmpeg -i .\mars.mp4 -c:v libx264 -c:a libmp3lame -f mpegts udp://239.1.1.1:...
  • udp转换hls进行直播的方法

    千次阅读 2018-01-08 18:03:22
    若你的编码器输出TS组播或者单播的UDP流,我们可以通过AMS接收这UDP流,并提供HLS直播服务。利用AMS接收UDP提供HLS直播非常简单,只需要添加一个拉流的直播频道即可。  下面我们详细讲解一下: 有个编码器向我的...
  • 蛋-udp 鸡蛋的udp插件。... // {app_root}/app/router.ts(or router.js) app . udp . handle ( 'proxy.handle' ) ; 控制器示例 这是 javascript 的示例。 // {app_root}/app/udp/controller/proxy.js
  • Android-接收UDP TS流实现边缓存边播放

    千次阅读 2018-02-15 21:34:32
     * 接收UDP TS流实现边缓存边播放    * 该类可以实现,但存在以下不足    * 1、播放过程会稍微卡一下这是 由于播放时候setOnCompletionListener中方法被执行    * 2、需要思考怎么解决...
  • 通过fmpeg传传输mpeg-ts视频,在嵌入式arm 下测试可以编译通过
  • https://blog.csdn.net/zhoubotong2012/article/details/86711097
  • 2. 网络协议流转成RTMP流(UDP转成RTMP或TCP转成RTMP) 3. RTMP进入流媒体系统进行网络分发。   ASI网络分发所需要的硬件和软件:   1. ASI转码器,ASI(信号为TS流)接入输出UDP网络流。(硬件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,198
精华内容 4,479
关键字:

ts转udp