当前位置: 首页 > 知识库问答 >
问题:

显示UDP多播RAW视频流

张嘉
2023-03-14

如上所述,我使用FFmpeg(命令行)通过UDP传输网络摄像头。在客户端,我使用Java OpenCV,即捕获行<代码>视频捕获。打开(“udp://xx.xx.xx.xx:xx) 。如果我将流作为mpegts(ffmpeg-f mpegts)发送,我可以显示流,但是;如果我把它作为rawvideo(ffmpeg-f rawvideo)发送,我不能。

是否有要设置的参数(如CvType)?

共有1个答案

李博达
2023-03-14

Mpegts具有专为通过UDP或数字电视等单向有损传输而设计的属性。它具有每100毫秒重复一次的数据包,以告诉读者如何引导解码,它具有帧标志的开始(有效负载单元开始指示器),它具有用于检测跳过和乱序数据包的数据包计数器,以及其他几个重要功能。

原始视频没有这些。这只是一堆字节。如果单个数据包丢失(包括第一个数据包),解码器将不知道帧的开始和结束位置,并且无法重建流。

因此,视频工具中通常不支持这种功能。如果需要发送原始视频,请使用TCP而不是UDP。

 类似资料:
  • 我目前正在开发一个需要解码UDP多播RTSP流的应用程序。目前,我可以通过ffplay查看RTP流 但是,我尝试使用FFMPEG通过(为了简洁起见,删除了错误检查和清理代码)打开UDP流。 这种方法适用于包含原始编码视频流的文件输入,但对于UDP多播RTSP流,它无法通过对执行的任何错误检查。请告知...

  • 我已经试了几天让这个工作没有成功。我有的是一个设备,它产生一个h264视频流,它通过原始udp(而不是rtp)在mpegts容器中多播。我正试着在Android上的自定义应用程序中显示这个。 我读到Android内置的MediaPlayer同时支持h264(avc)和mpegts,但它不能处理UDP://流,所以我不能使用它(这是最简单的)。相反,我尝试手动将mpegts流解析为基本流,并将其传递

  • 我正在使用ExoPlayer播放视频的应用程序。出于某种原因,当我试图暂停时,视频播放器没有显示播放/暂停图标。我只为播放/暂停做了一个自定义布局,并将其设置在PlayerView上。使用或播放/暂停视频。到处都找不到解决办法,好像我错过了什么,但又不知道是什么。

  • 正常模式下不播放同一视频。 我的问题是, 当我尝试播放视频,我得到的只是空白视频,但我得到了所有的音频和字幕。 我的代码有什么错误。请给我任何建议。

  • 以下是我到目前为止的布局: 我尝试通过编程方式向FrameLayout添加一个ImageButton,但这似乎不起作用。

  • 我的应用程序有一个片段,播放一秒钟长的视频。播放完视频后,用户必须按下一个按钮,然后应该播放一个新的视频。在播放第二个视频之前,my main activity加载、创建一个新片段并创建新的Exoplayer实例。 我第一次播放视频时,一切都按预期进行。然而,如果我想播放第二个视频,它将显示第一个视频最后一帧的冻结图像,并播放第二个视频的声音。这个bug不出现在Android8(API Level