目录
怎么判断是h264裸流
使用 FFmpeg 和 Hex 查看器
FFmpeg 输出示例:
$ ffmpeg -i input.264
如果是 H.264 裸流,可能看到类似这样的输出:
Input #0, h264, from 'input.264': Duration: N/A, bitrate: N/A Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1200k tbn, 50 tbc
使用 Hex 编辑器: 打开文件,查看开头是否有 00 00 01
或 00 00 00 01
。
h264转Mp4
ffmpeg -i input.h264 output.mp4
ffmpeg -i out.264 -c:v copy output.mp4
mp4转为h264裸流 ffmpeg
ffmpeg -i taiowu.mp4 -vcodec copy -an -bsf:v h264_mp4toannexb output.264
HI_HDL Hi264DecCreate(H264_DEC_ATTR_S *pDecAttr)
hi3559 编译x264
Hi264DecFrame(handle,buf,len,0,&dec_frame,flags),这个有部分源码:
https://github.com/51w/IPC/blob/eafb98fb8779c35c8d0a457dc6095733d9ca88cf/RTCP/VS_DEC/H264/main.cpp
海思Hi3559A编译x264_hi3559av100 移植ffmpeg-CSDN博客
1、交叉编译工具
aarch64-himix100-linux-gcc
2、下载x264源码
# git clone git://git.videolan.org/x264.git
3、编译
配置选项 ./configure --enable-pthread --enable-static --disable-shared --host=arm-linux --disable-asm
修改config.mak
添加一个新变量名HITOOLS,正常编译为空即可直接使用gcc
HITOOLS=aarch64-himix100-linux-
CC=${HITOOLS}gcc
LD=${HITOOLS}gcc -o
AR=${HITOOLS}ar rc
RANLIB=${HITOOLS}ranlib
STRIP=${HITOOLS}strip
make;make install
4、编译问题:
编译找不到:X264_VERSION
解决方法:由于该定义没有在x264_config.h中,可以使用脚本version.sh >>x264_config.h即可。