
正文
php读取数据帧 php读取数据表内容
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
从一个H264的文件读取数据,怎么判断满一帧?但从 00 00 00 01来判断好像是错的.
我也不是很懂,但是我对你的问题感兴趣所以查了一下,就我所了解的是这样:
H264文件的主要部分,是一堆"NAL单元"(NALU),NALU的分隔符是0000 0001 或 0000 01
每个NALU的头部,会有一个字节来标示该NALU的类型
一帧会由一个Access Unit (AU)构成,一个AU是由多个连续的NALU组成。
有一种NALU的类型,代表字节为09,是AU的结尾符号。但是这个似乎不是强制的而是建议。如果使用了该标识符,每一帧都将由0000 0001 09 或 0000 0109结尾。
如果不使用该标识符,似乎要通过NALU的内容判断两个NALU是否属于同一帧。
部分我看的参考资料:
后面两个英文资料可能要翻墙也可能不要
附件是完整的H264的specification,这是英文的,我没找到中文的。第八章详细的描述了解码的规范。
相关问答
Q1: php取数组指定的位置存放数据
PHP弱类型php读取数据帧,存放数据的话是可以满足的。
?php
$x="我是帧头";
$y=321;
//todo可以对$z进行赋值
$z="我是数据balabala~";
$arr=array($x,$y,$z);
echo "帧头php读取数据帧:".$arr[0]."br/";//输出帧头
echo "长度php读取数据帧:".$arr[1]."br/";//输出长度
echo "数据php读取数据帧:".$arr[2]."br/";//输出数据
var_dump($arr);//dump出来查看详细
?
输出结果php读取数据帧:
帧头:我是帧头
长度:321
数据:我是数据balabala~
array(3) { [0]= string(8) "我是帧头" [1]= int(321) [2]= string(17) "我是数据balabala~" }
Q2: php 网站怎么做到,不刷新页面,实时自动跟新数据
不刷新页面更新数据,一般有两个方法实现,都离不开JAVASCRIPT。现在最流行的就是AJAX,是用JS脚本连接数据库更新数据,刷新页面部分区域内容,不刷新整个网页。另外一个是比较经典、但是兼容性更高的方法,设置一个隐藏的FRAME或者iFRAME帧,那个帧不断刷新PHP页面,页面内容为改变可见帧内容的JS。
Q3: php可以对硬件操作吗
完全可以的php读取数据帧,php可以操作串口rs232的。
例子如下:
?php
// --------------------------------------------------------------------------
// File name : RS232_Server.php
// Description : RS232演示上位机程序
// Requirement : PHP 5.1.4 (cli) ()
//
// Copyright(C), HonestQiao, 2006, All Rights Reserved.
//
// Author: HonestQiao (honestqiao@hotmail.com/QQ:5601680)
//
// 程序简介:
// 本程序与RS232_Client构成一个完整的演示系统php读取数据帧,展示了PHP在RS232串口通讯上的应用。
// 程序之中实现了一个基础但是完整的RS232通讯协议(HQB232),通讯协议格式如下:
// 协议内容:
// C-S 01 //请求通讯
// S-C 02 //响应通讯
// C-S LEN DATA //LEN表示数据(DATA)长度 DATA表示实际数据
// C-S 03 //结束通讯
// 说明:S表示上位机 C表示下位机
// HQB232表示HonestQiao演示的基础(Base)RS232通讯协议,包含了协议的
// 请求和响应,数据帧的结构。
// 演示过程为通讯的请求和响应,十次数据帧的发送, 通讯的结束
// 数据帧的结构为当前的序号,microtime(),随机字符串
//
// 欢迎探讨PHP在RS232串口通讯上的应用。
// --------------------------------------------------------------------------
set_time_limit(0);
exec('mode COM1: baud=115200 data=8 stop=1 parity=n xon=on');
$fd = dio_open('COM1:', O_RDWR);
if(!$fd)
{
die("Error when open COM1");
}
$ff = dio_stat($fd);print_r($ff);
echo "HQB232 SERVER is listenning on COM1\n";
/// read
$len = 2;
$t=0;while (($t++)1000)
{
$data = dio_read($fd, $len);
if ($data) {
if($data==chr(0).chr(1)){
echo "S_RECV:01\n";
echo "S_SEND:02\n";
dio_write($fd,chr(0).chr(2));
break;
}
}
}
/// read
$len = 2;
$t=0;while (($t++)1000)
{
$len = 2;
$data = dio_read($fd, $len);
if($data==chr(0).chr(3)){
echo "S_RECV:03\n";
break;
}
elseif ($data) {
$len = intval($data);
$data = dio_read($fd, $len);
if($data){
echo "S_RECV:($len)$data\n";
}
}
}
dio_close($fd);
?
php读取数据帧的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php读取数据表内容、php读取数据帧的信息别忘了在本站进行查找喔。







