linux之x86裁剪移植---ffmpeg的H264解码显示(420、422)

286 篇文章 70 订阅 ¥9.90 ¥99.00
72 篇文章 29 订阅 ¥9.90 ¥99.00
58 篇文章 29 订阅 ¥9.90 ¥99.00
在Linux系统中,使用FFmpeg进行H264解码时遇到420格式在某些硬件上无法显示的问题。通过转换为422格式,成功解决显示问题。利用sws_scale函数完成了YUV420到YUV422的数据转换,实现了在不同设备上的正确显示。
摘要由CSDN通过智能技术生成

在虚拟机上yuv420可以正常显示 ,而945(D525)模块上却无法显示 ,后来验证了directdraw的yuv420也无法显示 ,由此怀疑显卡不支持 ,后把420转换为422显示。

420显示如下:

/*
编译命令:arm-linux-gcc -o show2642 264showyuv2.c -I/usr/local/ffmpeg_arm/include/   -L/usr/local/ffmpeg_arm/lib/ -lswresample -lavformat -lavutil -lavcodec -lswscale -lx264   libSDL.a

gcc -o test test.c -I/usr/local/ffmpeg/include/   -L/usr/local/ffmpeg/lib/ -lswresample -lavformat -lavutil -lavcodec -lswscale  -lx264 -lSDL 

*/
#include "stdio.h"
#include "stdlib.h"


#include "libavformat/avformat.h"
#include "libavdevice/avdevice.h"
#include "libswresample/swresample.h"
#include "libavutil/opt.h&
Python中解码H264流通常需要使用`ffmpeg`库,因为`ffmpeg`是一个非常强大的多媒体处理工具,它可以处理几乎所有的视频和音频格式,包括H264。在Python中,我们可以通过`subprocess`模块来调用`ffmpeg`命令行工具,或者使用封装了`ffmpeg`的Python库,比如`python-ffmpeg`模块,来实现这一功能。 使用`python-ffmpeg`解码H264流,可以通过以下步骤进行: 1. 首先需要安装`ffmpeg`和`python-ffmpeg`模块。 2. 使用`python-ffmpeg`打开H264流。 3. 初始化解码器并设置相应的编解码参数。 4. 读取H264流的数据包,并将其送入解码器。 5. 解码数据包以获取解码后的帧。 6. 将解码后的帧数据进行处理,例如显示或保存。 下面是一个简单的示例代码框架,用于展示如何在Python中使用`python-ffmpeg`库解码H264流: ```python import ffmpeg # 打开H264流文件 input_stream = ffmpeg.input('input.h264') # 输出解码后的视频流 output_stream = input_stream.output('pipe:', format='rawvideo', pix_fmt='bgr24') # 执行解码过程 ffprobe = ffmpeg.probe('input.h264') stream = next((s for s in ffprobe['streams'] if s['codec_type'] == 'video'), None) width = int(stream['width']) height = int(stream['height']) ffmpeg.run(output_stream) # 读取解码后的帧数据 # 注意:这里需要根据实际情况读取数据,并进行相应的处理 ``` 这段代码仅作为一个框架示例,实际上还需要根据具体需求进行细致的处理,例如分配输出帧缓冲区、处理解码出错的情况等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

毛毛虫的爹

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

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

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

打赏作者

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

抵扣说明:

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

余额充值