h264 encode and decode success

这篇博客记录了H264编码和解码的过程。通过QThread进行帧处理,将YUV数据编码为H264,然后写入FIFO。编码过程中使用x264库,显示了编码参数和质量。解码成功后,得到640x480的图像数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QThread(0x1d66740) captured: 614400
bufindex: 0
CaptureThread:put a new frame to yuvFIFO
307200 153600 153600
H264Encoder: QThread(0x1d66620) get a frame from fifo: 307200 153600 153600
x264 [warning]: ref > 1 + intra-refresh is not supported
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
x264 [info]: profile High, level 3.0
x264_encoder_encode()= 0
zero frame
x264 [debug]: frame=   0 QP=26.12 NAL=3 Slice:I Poc:0   I:1200 P:0    SKIP:0    size=8631 bytes
write h264 to h264 FIFO: 8631
x264 [info]: frame I:1     Avg QP:26.12  size:  8631
x264 [info]: mb I  I16..4: 31.5% 61.2%  7.3%
x264 [info]: 8x8 transform intra:61.2%
x264 [info]: coded y,uvDC,uvAC intra: 46.7% 87.1% 55.4%
x264 [info]: i16 v,h,dc,p:  4% 49%  2% 45%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 29% 14%  5%  6%  8%  6%  6%  7%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 36% 21% 12%  2%  7% 10%  4%  6%  2%
x264 [info]: i8c dc,h,v,p: 59% 20% 17%  4%
x264 [info]: kb/s:1726.20
h264 fifo count: 1
decode:get a frame from h264 fifo: 8631
decoder finish:ret= 8631 ,finish= 0
decode success: 640 480
YUVFIFO is empty,wait...
decoder finish: y u v size: 307200 76800 76800
H264FIFO is empty,wait...
QThread(0x1d66740) captured: 614400
bufindex: 0
CaptureThread:put a new frame to yuvFIFO
307200 153600 153600
H264Encoder: QThread(0x1d66620) get a frame from fifo: 307200 153600 153600
x264 [warning]: ref > 1 + intra-refresh is not supported
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
x264 [info]: profile High, level 3.0
x264_encoder_encode()= 0
zero frame
x264 [debug]: frame=   0 QP=26.11 NAL=3 Slice:I Poc:0   I:1200 P:0    SKIP:0    size=8627 bytes
write h264 to h264 FIFO: 8627
x264 [info]: frame I:1     Avg QP:26.11  size:  8627
x264 [info]: mb I  I16..4: 32.6% 58.8%  8.6%
x264 [info]: 8x8 transform intra:58.8%
x264 [info]: coded y,uvDC,uvAC intra: 47.7% 85.6% 55.6%
x264 [info]: i16 v,h,dc,p:  4% 50%  2% 45%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 16% 28% 15%  5%  6%  9%  6%  7%  8%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 23% 11%  5%  9%  9%  4%  6%  3%
x264 [info]: i8c dc,h,v,p: 59% 20% 16%  4%
x264 [info]: kb/s:1725.40
h264 fifo count: 1
decode:get a frame from h264 fifo: 8627
decoder finish:ret= 8627 ,finish= 0
decode success: 640 480
YUVFIFO is empty,wait...
decoder finish: y u v size: 307200 76800 76800
H264FIFO is empty,wait...
QThread(0x1d66740) captured: 614400
bufindex: 0
CaptureThread:put a new frame to yuvFIFO
307200 153600 153600
H264Encoder: QThread(0x1d66620) get a frame from fifo: 307200 153600 153600
x264 [warning]: ref > 1 + intra-refresh is not supported
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
x264 [info]: profile High, level 3.0
x264_encoder_encode()= 0
zero frame
x264 [debug]: frame=   0 QP=26.18 NAL=3 Slice:I Poc:0   I:1200 P:0    SKIP:0    size=8335 bytes
write h264 to h264 FIFO: 8335
x264 [info]: frame I:1     Avg QP:26.18  size:  8335
x264 [info]: mb I  I16..4: 32.2% 60.8%  6.9%
x264 [info]: 8x8 transform intra:60.8%
x264 [info]: coded y,uvDC,uvAC intra: 46.1% 83.7% 50.8%
x264 [info]: i16 v,h,dc,p:  3% 47%  3% 47%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 29% 14%  5%  6%  8%  6%  7%  7%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 31% 26% 13%  3%  8%  9%  5%  3%  3%
x264 [info]: i8c dc,h,v,p: 59% 22% 15%  3%
x264 [info]: kb/s:1667.00
h264 fifo count: 1
decode:get a frame from h264 fifo: 8335
decoder finish:ret= 8335 ,finish= 0
decode success: 640 480
YUVFIFO is empty,wait...
decoder finish: y u v size: 307200 76800 76800
H264FIFO is empty,wait...
QThread(0x1d66740) captured: 614400
bufindex: 0
CaptureThread:put a new frame to yuvFIFO
307200 153600 153600
H264Encoder: QThread(0x1d66620) get a frame from fifo: 307200 153600 153600
x264 [warning]: ref > 1 + intra-refresh is not supported
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
x264 [info]: profile High, level 3.0
x264_encoder_encode()= 0
zero frame
x264 [debug]: frame=   0 QP=26.16 NAL=3 Slice:I Poc:0   I:1200 P:0    SKIP:0    size=8656 bytes
write h264 to h264 FIFO: 8656
x264 [info]: frame I:1     Avg QP:26.16  size:  8656
x264 [info]: mb I  I16..4: 33.0% 58.2%  8.8%
x264 [info]: 8x8 transform intra:58.2%
x264 [info]: coded y,uvDC,uvAC intra: 47.0% 86.4% 56.0%
x264 [info]: i16 v,h,dc,p:  5% 53%  1% 41%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 30% 12%  5%  6%  7%  6%  7%  8%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 35% 21% 11%  4%  8% 10%  4%  4%  3%
x264 [info]: i8c dc,h,v,p: 59% 22% 16%  3%
x264 [info]: kb/s:1731.20
h264 fifo count: 1
decode:get a frame from h264 fifo: 8656
YUVFIFO is empty,wait...
decoder finish:ret= 8656 ,finish= 0
decode success: 640 480
decoder finish: y u v size: 307200 76800 76800
H264FIFO is empty,wait...
QThread(0x1d66740) captured: 614400
bufindex: 0
CaptureThread:put a new frame to yuvFIFO
307200 153600 153600
H264Encoder: QThread(0x1d66620) get a frame from fifo: 307200 153600 153600
x264 [warning]: ref > 1 + intra-refresh is not supported
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
x264 [info]: profile High, level 3.0
x264_encoder_encode()= 0
zero frame
x264 [debug]: frame=   0 QP=26.16 NAL=3 Slice:I Poc:0   I:1200 P:0    SKIP:0    size=8609 bytes
write h264 to h264 FIFO: 8609
x264 [info]: frame I:1     Avg QP:26.16  size:  8609
x264 [info]: mb I  I16..4: 34.1% 56.7%  9.2%
x264 [info]: 8x8 transform intra:56.7%
x264 [info]: coded y,uvDC,uvAC intra: 45.8% 85.9% 55.4%
x264 [info]: i16 v,h,dc,p:  4% 51%  1% 44%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 16% 29% 13%  5%  6%  9%  7%  7%  7%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 35% 22% 10%  4%  7% 11%  3%  5%  2%
x264 [info]: i8c dc,h,v,p: 61% 20% 15%  3%
x264 [info]: kb/s:1721.80
h264 fifo count: 1
decode:get a frame from h264 fifo: 8609
YUVFIFO is empty,wait...
decoder finish:ret= 8609 ,finish= 0
decode success: 640 480
decoder finish: y u v size: 307200 76800 76800
H264FIFO is empty,wait...

### HM-M18 技术信息与错误代码解决方案 HM-M18 是一种广泛应用于工业自动化和物联网领域的无线通信模块,主要用于实现设备之间的数据传输。以下是关于该模块的技术信息及其常见错误代码的相关解决方案。 #### 1. 技术概述 HM-M18 属于低功耗、高性能的无线射频收发模块,工作频率覆盖 ISM 波段(433 MHz 或者 868 MHz),能够满足远距离通信需求[^1]。 - **主要特点** - 工作电压范围:3.0V ~ 5.5V DC - 发送功率可调至最高 +20dBm - 接收灵敏度可达 -120dBm #### 2. 常见问题及解决方法 ##### (1)连接失败 如果发现无法建立正常的数据链路,则可能是天线安装不当或者周围电磁干扰严重所致。建议重新调整天线位置,并远离强磁场源[^2]。 ##### (2)接收信号弱 当接收到的有效包数量明显下降时,应考虑增加发射端功率设置或将两节点间的物理障碍物移除以改善路径损耗情况[^3]。 ```python # 示例代码展示如何修改 HM-M18 的发送功率等级 import serial def set_tx_power(port='/dev/ttyUSB0', power_level=3): ser = serial.Serial(port, baudrate=9600) command = f'AT+POWER={power_level}\r\n' ser.write(command.encode()) response = ser.readline().decode() return 'Success' if 'OK' in response else 'Failed' print(set_tx_power('/dev/ttyS0')) ``` --- #### 3. 错误代码解析表 | 错误码 | 描述 | 解决措施 | |--------|--------------------------|---------------------------------------------------------------------------| | E01 | 初始化失败 | 检查供电是否稳定,在规定范围内;确认固件版本兼容性 | | E02 | 参数配置冲突 | 使用默认参数重置模块后再尝试自定义设定 | | E03 | 数据帧校验不通过 | 减少空中速率,提高抗噪能力 | 以上列举了一些典型的故障现象及其对应的排查思路[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值