GNURadio 传输视频并使用 VLC 实时显示

最近需要参加一个比赛,主要就是使用 FPGA 获取视频发送给USRP RX进行发送,最终在接收端进行实时显示。本次记录一下在接收端进行视频的实时显示的方法与测试过程。主要流程图如下:

图 1

实现视频通过 USRP 发送并在接收端进行实时显示,这个过程用两个通俗的词来总结就是——直播。一般来说,由于信道带宽的限制,如果将原始视频解码为一帧帧的图像再进行发送然后在接受段显示的话就需要很大的传输带宽,一般的无线传输很难达到如此大的带宽,尤其是水声通信。因此必须传输编码后的视频流(比如mp4格式的视频)。

对于我这种没有详细研究过视频编解码的人来说,实现视频实时显示的方法当然越简单越好,最好连代码都不用写就更好了!幸好呀,这种方法真的存在(^-^)!在接收端进行视频的实时显示可以使用 VLC 播放器。下面我们看几个传输的例子:

1、音频传输

本次实验传输一个 .wav 格式的音频数据,GNU Radio 里的设置如下:

至于 UDP Sink 模块怎么用这里就省略了(放个链接,有需要的可以点进去学习下),注意 IP 地址 Address 参数的设置,可以通过 ifconfig -a 命令进行获取。然后是端口号 Destination Port 参数的设置,设置为什么随便,只要跟 VLC 中的一致就行。

下面说下 VLC 的设置,VLC 的安装命令为 sudo apt install vlc 。打开 VLC ,在菜单栏选择 Media -> Open Network Stream,就会看到如下界面:

我们在 URL 栏里填上网络地址及端口号,注意前缀为:udp/wav:// , 后面的 ip 地址及端口号要与 UDP Sink 模块中的设置一致。然后点击 Play 按钮即可等待数据的接收。

最后插上耳机并运行 GNU Radio 流图,~~~你听,多么美妙的声音~~~

注意:这里千万不要用 Throttle 模块,至于为什么,你加上去试试就知道了。

2、视频传输 

目前只实现了使用 GNURadio 进行无声视频的传输,带声视频的传输方法还在研究中。过程如下:

我先把音频传输中的 VLC URL 栏里的前缀改为:udp/h264:// ,其他设置保持不变。然后使用 ffmpeg 工具(安装步骤参考链接)将手机拍摄的带声 mp4 文件转化为 h264 格式的文件,命令如下:

ffmpeg -i 36985186.mp4 -c copy test.h264

该转换方法来自:

使用ffmpeg将mp4文件转为h264文件或者264文件_soralaro的博客-CSDN博客

之后对转换后的 test.h264 文件进行传输即可,步骤同上。

目前的进展,先做个总结,后面还得鼓捣鼓捣怎么正常发送 mp4 文件在回来做个更新。

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

地球被支点撬走啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值