gstreamer - x264 enc v4l2 /dev/video2 流
问题描述
我有这个工作,但无法从我的 magwell 获取视频以进行集成,并且可以使用正确的管道帮助。
gst-launch-1.0 videotestsrc ! video/x-raw,width=848,height=480,framerate=25/1 ! x264enc bitrate=700 ! video/x-h264,width=848,height=480,framerate=25/1,stream-format=byte-stream,profile=baseline ! tee name=t\
t. ! queue ! tcpclientsink host=172.18.0.3 port=8000 \
t. ! queue ! tcpclientsink host=172.18.0.4 port=8000
解决方案
我在问题描述中没有看到接收方管道。这是验证接收方没有问题所必需的。根据您当前的管道,我有以下建议:
您不需要
caps
在 element 之后再设置x264enc
,因为输出无论如何都是 typevideo/x-h264
。你需要的是h264parse
在x264enc
.h264parse
在将数据传递给您在接收端使用的解码器之前,您还需要添加, 。设置的比特率
x264enc
也非常少。单位为 kbits/sec,对于视频,这可能会非常少。如果您没有任何严格的资源限制,最好将其保留为默认设置。否则尝试更高的值。
还有你使用 TCP 的任何原因。如果视频数据/数据包丢失不是问题,则对视频使用 UDP 可能是一个更好的主意。
推荐阅读
- flutter - Flutter Firebase 事务
- unity3d - Unity Editor 脚本、ApplyModifiedParametesr 和保存场景。有些东西不工作
- python - 如何用python绕过响应503
- git - 运行“patch -p1 < patch-file”时出现“git binary diffs are not supported”错误
- javascript - 为什么检查的伪类在 css 中不起作用?
- java - 将霍夫曼编码的字符串写入Java文件时如何处理奇数字节?
- python - 测试列表中所有可能性的程序
- javascript - 如何在不知道调用者函数的情况下拦截 javascript 中的 api 调用?
- java - 将依赖项复制到 gradle 中的 libs 文件夹
- linux - Sublime Text:[Errno 2] 没有这样的文件或目录:'gopls'