编辑: 我不是阿L | 2019-08-01 |
14.28 版本内核 TN01010101 V1.00 Date:2017/09/01 多媒体使用 类别 内容 关键词 音视频采集、流媒体、gstream 摘要A9 平台 3.14.28 版本内核多媒体的使用 Technical Note 广州致远电子有限公司 A9 平台 3.14.28 版本内核 工程技术笔记 ?2017 Guangzhou ZHIYUAN Electronics Co., Ltd. i 多媒体使用 修订历史 版本 日期 原因 V1.00 2017/09/01 创建文档 广州致远电子有限公司 A9 平台 3.14.28 版本内核 工程技术笔记 ?2017 Guangzhou ZHIYUAN Electronics Co., Ltd.
1 多媒体使用 目录1. 适用范围.1 2. 技术支持和更新.2 2.1 获取系统 log 信息.2 2.2 获取板子的内核版本.2 2.3 获取板子摄像头信息.2 2.4 获取内核启动信息.3 2.5 proc 其他信息.3 2.6 其他信息.3 3. 简介.5 4. 视频.6 4.1 编码.6 4.1.1 编码为 H264.6 4.1.2 编码为 mpeg4.6 4.1.3 编码为 H263.7 4.1.4 编码为 mjpeg.7 4.1.5 编码为 jpeg.7 4.2 解码.7 4.2.1 解码 H.264 视频.7 4.2.2 解码 mpeg4 视频.8 4.2.3 解码 H.263 视频.8 4.2.4 媒体文件.8 4.2.5 其他播放器插件.8 4.3 多屏显示.9 4.4 色彩转换和视频缩放.10 4.5 网络摄像头.11 5. 音频.12 5.1 编码.12 5.2 解码.12 6. 多媒体.13 6.1 录制音视频 avi 文件.13 6.2 播放 avi 格式文件.13 6.3 播放 webm 格式文件.13 7. 网络流媒体.14 7.1 UDP 流.14 7.1.1 测试.14 7.1.2 摄像头.14 7.2 RTSP 流16 7.2.1 视频.16 7.2.2 音频.16 7.2.3 音视频.17 7.2.4 基于文件的音视频.18 广州致远电子有限公司 A9 平台 3.14.28 版本内核 工程技术笔记 ?2017 Guangzhou ZHIYUAN Electronics Co., Ltd.
2 多媒体使用 7.3 故障排除.18 8. 参考资料.19 9. 免责声明.20 广州致远电子有限公司 A9 平台 3.14.28 版本内核 工程技术笔记 ?2017 Guangzhou ZHIYUAN Electronics Co., Ltd.
1 多媒体使用 1. 适用范围 本文是基于致远电子 A9 平台 3.14.28 版本内核上进行多媒体的介绍及开发. 广州致远电子有限公司 A9 平台 3.14.28 版本内核 工程技术笔记 ?2017 Guangzhou ZHIYUAN Electronics Co., Ltd.
2 多媒体使用 2. 技术支持和更新 技术支持范围 本公司产品的软、硬件资源提供情况咨询;
本公司产品的软、硬件手册使用过程中遇到的问题;
本公司提供的 OEM、 ODM 售后技术支持;
已购买本公司产品用户的资料丢失、更新后重新获取;
本公司产品的故障判断及售后维修服务;
技术讨论范围(非必解决问题) 源码的修改以及理解;
操作系统如何移植;
用户在自行修改以及开发中遇到的软硬件问题;
技术支持方式 Linux 技术支持: [email protected] 请在邮件中详细注明公司名称、联系方式,以及我司的销售人员信息,以便于良好的技 术支持沟通! 技术支持时间 周一至周五: 上午 8:30―12:00 下午 13:30―18:00 公司按照国家法定节假日安排休息, 在此期间无法提供技术支持, 有问题请发邮箱或论 坛技术支持区,我们会在工作日尽快给您回复. 资料下载方法 请联系客服人员或者购买开发板对应的销售人员索取 资料更新说明 到目前为止,手册虽然经过多次修改,但仍有很多不足,请大家多提宝贵意见! 同时, 致远嵌入式开发平台手册在不断更新完善中, 请用户及时下载相应平台的最新使 用手册. 2.1 获取系统 log 信息 当设计到系统问题时,需要向我方提供系统启动 log 信息.系统启动 log 信息存放在板 子的/var/volatile/log 目录中,把log 目录打包发送我方邮箱中. 2.2 获取板子的内核版本 在板子使用 uname -a 命令将会获取板子内核的版本信息. root@M6708-T:~# uname -a Linux M6708-T 3.14.28+g91cf351 #1 SMP PREEMPT Tue Mar
21 15:09:42 CST
2017 armv7l GNU/Linux 2.3 获取板子摄像头信息 使用 v4l2-ctl -d /dev/video0 --all 命令将会获取摄像头设备/dev/video0 的详细信息. root@M6708-T:~# v4l2-ctl -d /dev/video0 Call 广州致远电子有限公司 A9 平台 3.14.28 版本内核 工程技术笔记 ?2017 Guangzhou ZHIYUAN Electronics Co., Ltd.
3 多媒体使用 2.4 获取内核启动信息 在系统的 /proc/cmdline 文件存放着内核的启动信息,使用 cat 命令查看系统启动 信息. root@M6708-T:~# cat /proc/cmdline 2.5 /proc 其他信息 对于 /proc 中文件可使用文件查看命令浏览其内容,/proc 目录下文件中包含系统特 定信息,如表所示. 文件 信息 cpuinfo 主机 CPU 信息 dma 主机 DMA 通道信息 filesystems 文件系统信息 interrupts 主机中断信息 ioprots 主机 I/O 端口号信息 meninfo 主机内存信息 version Linux 内存版本信息 bus/input/devices 输入设备信息 loadavg 查看系统负载 2.6 其他信息 查看系统信息: # uname -a # 查看内核/操作系统/CPU 信息 # cat /proc/cpuinfo # 查看 CPU 信息 # hostname # 查看计算机名 # lspci -tv # 列出所有 PCI 设备 # lsusb -tv # 列出所有 USB 设备 # lsmod # 列出加载的内核模块 # env # 查看环境变量 # modinfo softdog # 查看模块信息 查看系统资源信息: # free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分区使用情况 # du -sh # 查看指定目录的大小 # grep MemTotal /proc/meminfo # 查看内存总量 # grep MemFree /proc/meminfo # 查看空闲内存量 # uptime # 查看系统运行时间、用户数、负载 # cat /proc/loadavg # 查看系统负载 磁盘和分区: # mount | column -t # 查看挂接的分区状态 # fdisk -l # 查看所有分区 # swapon -s # 查看所有交换分区 # hdparm -i /dev/hda # 查看磁盘参数(仅适用于 IDE 设备) # dmesg | grep IDE # 查看启动时 IDE 设备检测状况 广州致远电子有限公司 A9 平台 3.14.28 版本内核 工程技术笔记 ?2017 Guangzhou ZHIYUAN Electronics Co., Ltd.
4 多媒体使用 查看网络信息: # ifconfig # 查看所有网络接口的属性 # route -n # 查看路由表 # netstat # 查看所有监听端口和建立的连接 查看进程信息: # ps -ef # 查看所有进程 # top # 实时显示进程状态 查看用户信息: # w # 查看活动用户 # id # 查看指定用户信息 # last # 查看用户登录日志 # cut -d: -f1 /etc/passwd # 查看系统所有用户 # cut -d: -f1 /etc/group # 查看系统所有组 广州致远电子有限公司 A9 平台 3.14.28 版本内核 工程技术笔记 ?2017 Guangzhou ZHIYUAN Electronics Co., Ltd.
5 多媒体使用 3. 简介 随着ARM平台性能的日益强大和嵌入式设备的发展, 对于多媒体处理器如音视频播放、 摄像头、流媒体处理等需求也日益增多,致远电子 M6708T 核心板支持如下多媒体功能: ? 1080@30fps MPEG-4/H264/H263/MJPEG 视频编解码. ? 隔行扫描视频转为逐行视频. ? 网络摄像头采集. ? 视频图像的色彩转换、缩放、旋转. ? 屏幕显示;
多屏同显,多屏异显,一屏多显. ? mp3 格式音频编解码. ? 音视频合成;
实时进行音频和视频的录制且合成为 avi 文件. ? 音视频分离.将avi 文件分离为音频和视频文件. ? udp 和rtsp 流媒体,实现在 windows 系统使用 vlc 软件实时观看 M6708T 实时传输 的音视频流,实现在 M6708T 实时接收服务器传输的音视频流. 广州致远电子有限公司 A9 平台 3.14.28 版本内核 工程技术笔记 ?2017 Guangzhou ZHIYUAN Electronics Co., Ltd.
6 多媒体使用 4. 视频 4.1 编码 使用 gst-launch-1.0 命令进行视频编码的格式为: # gst-launch-1.0 imxv4l2src device=$DEVICE num-buffers=300 ! $INPUT_CAPS ! queue ! vpuenc ! $capsfilter ! $ $MUXER ! filesink location=output.$EXTENSION ? $DEVICE 为设备节点的名称;
? $INPUT_CAPS 为摄像头采集的格式, 需要根据摄像头的支持的分辨率和帧率设置, '
video/xraw,format=(string)NV12,width=1920,height=1080,framerate=(fraction)30/1'
;
? 可以编码为 MPEG4, H263, H264, or MJPEG 格式;
? $capsfilter:设置输出的格式.默认输出为 H264 格式文件;
? 若是设置输出格式为 MPEG4,则$capsfilter 设置为 video/mpeg, mpegversion=(int)4, systemstream=(boolean)false ;
? 若是设置输出格式为 H263,则$capsfilter 设置为 video/x-h263 . ? 若是设置输出格式为 MJPG,则$capsfilter 设置为 image/jpeg ;
? $MUXER 合成器可选项为 qtmux、 matroskamux、 mp4mux、 avimux、flvmux;
? 不同的合成器,支持不同的编码类型. 使用 gst-inspect-1.0 $MUXER 查看详细信 息. ? $EXTENSION 为文件格式类型.根据 muxer 类型设置. 例子: 4.1.1 编码为 H264 h264 是一种非常流行的编码技术.它最常用于高清视频编码.下面是使用硬件编码器 对摄像头采集的视频进行 h264 编码的例子. 使用摄像头设备 /dev/video0 进行视频采集,通过硬件编码器 vpu 将摄像头输入的视 频编码为 h264,并以 10mbit/s(CBR)的比特率将其保存到文件中. # gst-launch-1.0 imxv4l2src device=/dev/video0 ! '
video/x-raw,format=(string)NV12,width=(int)720,height=(int)576,framerate=(fraction)25/1'
! vpuenc bitrate=10000 ! '
video/x-h264'
! filesink location=file.H264 一些摄像头采集的视频是 vpu 编码器无法处理的, 因此需要先使用 ipu (图像处理单元) 进行颜色空间转换.把摄像头设备 /dev/video0 采集的图像进行色彩空间转换,并把视频 编码........