- 收藏
- 点赞
- 分享
- 举报
移植交叉编译最新ffmpeg源码,以及PC端编译源码
本帖最后由 wfjdemmye 于 2017-3-31 15:32 编辑
前绪: 最近在做海思的产品,想在海思的IPC产品做一个视频播放功能,但是比较坑的是,海思产品特点是带编码就不带解码,带解码就不带编码,所以决定用软解的方式来做。
其实移植源码也就是那么几步: 1.configure 配置需要的参数 2.make 开始编译 3.make install 安装编译库
从下面我们就开始吧: 一、移植准备 last_x264.tar.bz2,可以在官网下网: ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2 ffmpeg-3.2.4.tar.bz2 官网下载地址: http://ffmpeg.org/releases/ffmpeg-3.2.4.tar.bz2 网不好的同学可以在我的百度盘里面下载。 链接:http://pan.baidu.com/s/1geLh9XD提取码:v6sw 好啦,基本源材料都准备好了 二、编译x264库(我们ffMpeg中有用到这个依赖库,主要用来编译H.264 / mpeg - 4 AVC压缩格式) step1:configure 配置 ARM配置: CC=arm-hisiv500-linux-gcc ./configure \ --host=arm-hisiv500-linux \ --enable-pic\ --prefix=/opt/ffmpeg-hisi/x264_hisi \ --cross-prefix=arm-hisiv500-linux- \ --enable-static \ --enable-shared
or PC配置: ./configure --enable-shared --enable-shared --enable-pic --prefix=/opt/ffmpeg-X86/x264_x86
step2:make
step3:make install
我的安装目录在/opt/ffmpeg-hisi/x264_hisi,跟上的同学们可以自己决定安装在哪里,这个目录我们后面编译ffmpeg和基于ffmpeg的程序都是需要用的。
二、编译ffmpeg step1:configure 配置 ./configure \ --prefix=/opt/ffmpeg-hisi/ffmpeg_hisi/ \ --enable-filters \ --enable-asm \ --enable-ffmpeg \ --enable-ffplay \ --enable-ffprobe \ --enable-ffserver \ --enable-doc \ --enable-cross-compile \ --cross-prefix=arm-hisiv500-linux- \ --arch=arm \ --target-os=linux \ --host-os=linux \ --enable-gpl \ --enable-version3 \ --enable-small \ --enable-shared \ --enable-static \ --enable-encoder=rawvideo \ --enable-encoder=mpeg2video \ --enable-encoder=mp2 \ --enable-encoder=libx264 \ --enable-libx264 \ --enable-muxer=adts \ --enable-muxer=mpegts \ --enable-muxer=mpeg2video \ --enable-muxer=rtsp \ --enable-muxer=hls \ --enable-muxer=h264 \ --enable-muxer=rtp \ --enable-muxer=avi \ --enable-muxer=flv \ --enable-muxer=mp4 \ --enable-demuxer=mpegts \ --enable-demuxer=rtsp \ --enable-demuxer=hls \ --enable-demuxer=h264 \ --enable-demuxer=rtp \ --enable-demuxer=flv \ --enable-muxer=mp4 \ --enable-demuxer=mpegts \ --enable-demuxer=rtsp \ --enable-demuxer=hls \ --enable-demuxer=h264 \ --enable-demuxer=rtp \ --enable-demuxer=flv \ --enable-demuxer=avi \ --enable-demuxer=mpegps \ --enable-demuxer=mpegtsraw \ --enable-demuxer=mpegvideo \ --enable-parser=aac \ --enable-parser=h264 \ --enable-parser=mpeg4video \ --enable-parser=mpegvideo \ --enable-parser=mpegaudio \ --enable-bsf=h264_mp4toannexb \ --enable-protocol=http \ --enable-protocol=rtp \ --enable-protocol=rtmpts \ --enable-protocol=https \ --enable-protocol=hls \ --enable-protocol=file \ --enable-protocol=data \ --enable-gray \ --enable-safe-bitstream-reader \ --extra-cflags=-I/opt/ffmpeg-hisi/x264_hisi/include \ --extra-ldflags=-L/opt/ffmpeg-hisi/x264_hisi/lib
or:
PC配置:
./configure \
--prefix=/opt/ffmpeg-X86/ffmpeg_x86/ \
--enable-filters \
--enable-asm \
--enable-ffmpeg \
--enable-ffplay \
--enable-ffprobe \
--enable-ffserver \
--enable-doc \
--target-os=linux \
--host-os=linux \
--enable-gpl \
--enable-version3 \
--enable-small \
--enable-shared \
--enable-static \
--enable-decoder=ibopenh264\
--enable-encoder=rawvideo \
--enable-encoder=mpeg2video \
--enable-encoder=mp2 \
--enable-encoder=libx264 \
--enable-encoder=libvo_aacenc \
--enable-libx264 \
--enable-muxer=adts \
--enable-muxer=mpegts \
--enable-muxer=mpeg2video \
--enable-muxer=rtsp \
--enable-muxer=hls \
--enable-muxer=h264 \
--enable-muxer=rtp \
--enable-muxer=avi \
--enable-muxer=flv \
--enable-muxer=mp4 \
--enable-demuxer=mpegts \
--enable-demuxer=rtsp \
--enable-demuxer=hls \
--enable-demuxer=h264 \
--enable-demuxer=rtp \
--enable-demuxer=flv \
--enable-demuxer=avi \
--enable-demuxer=mpegps \
--enable-demuxer=mpegtsraw \
--enable-demuxer=mpegvideo \
--enable-parser=aac \
--enable-parser=h264 \
--enable-parser=mpeg4video \
--enable-parser=mpegvideo \
--enable-parser=mpegaudio \
--enable-bsf=h264_mp4toannexb \
--enable-protocol=http \
--enable-protocol=rtp \
--enable-protocol=rtmpts \
--enable-protocol=https \
--enable-protocol=hls \
--enable-protocol=file \
--enable-protocol=data \
--enable-gray \
--enable-safe-bitstream-reader \
--extra-cflags=-I/opt/ffmpeg-X86/x264_x86/include \
--extra-ldflags=-L/opt/ffmpeg-X86/x264_x86/lib
step2:make
step3:make install
就这样简单,移植完毕;这个配置即可以做编译也可做解码,支持大部分格式。
大家需要迈地的坑:在移植后要去核对一下,自己的系统中是否存在ffmpeg库。如果存在的话会因为和现在的最新版的接口不兼容,会给后期写程序带来很大的麻烦。
移植之后检察一下是否有ffmpeg库,否在没有安装的地方也会有。
root@airgens-pc:/# find . -name libavcodec.so find: ‘./run/user/1000/gvfs’: Permission denied ./opt/hisi-H264/lib/libavcodec.so ./opt/ffmpeg-X86/ffmpeg_x86/lib/libavcodec.so ./opt/hisi-linux/x86-arm/arm-hisiv500-linux/lib/libavcodec.so ./opt/ffmpeg-hisi/ffmpeg_hisi/lib/shareLib/libavcodec.so ./opt/ffmpeg-hisi/ffmpeg_hisi/lib/libavcodec.so find: ‘./mnt/hgfs’: Protocol error ./home/airgens/work/qt-foder/ffjpeg-H264/ffmpeg-2.2.3/libavcodec/libavcodec.so ./home/airgens/work/qt-foder/SCXJ/SCXJ/H264PlayBaseFFmpeg/lib/libavcodec.so ./home/airgens/work/openSourceCoding/ffmpeg-3.2.4_X86/libavcodec/libavcodec.so ./home/airgens/work/openSourceCoding/ffmpeg-3.2.4_Arm/libavcodec/libavcodec.so
我之前在/usr/lib/i386-linux-gnu/目录下有ffmpeg2.5版本的库,导致我PC端的程序总是编译不程序,浪费了我许多时间。
[free]ffmpeg移植,源码编译[/free]
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
-
2024-11-24 11:15:56
-
2024-07-27 17:49:08
-
2020-03-26 16:33:52
-
2019-01-03 10:55:47
-
2020-07-17 15:52:32
-
2015-04-21 08:24:46
-
2020-11-03 15:08:12
-
2015-08-05 16:11:32
-
2019-11-09 19:30:08
-
2020-11-16 14:52:39
-
2023-04-19 10:28:40
-
2019-10-10 11:10:02
-
2020-10-30 11:11:35
-
12018-03-05 11:43:03
-
2018-10-29 15:22:30
-
2020-04-01 11:58:06
-
2020-11-12 16:50:34
-
2020-11-06 11:39:36
-
2019-01-15 16:16:26
-
5SS928的emmc有32GB,bootargs设置使用16GB,但是为啥能用的只有rootfs的大小
-
33SS928怎样烧写ubuntu系统
-
10ToolPlatform下载rootfs提示网络失败
-
10谁有GK7205V500的SDK
-
5Hi3516CV610 烧录不进去
-
10Hi3559AV100 芯片硬解码h265编码格式的视频时出现视频播放错误,解码错误信息 s32PackErr:码流有错
-
5海思SS928 / SD3403的sample_venc.c摄像头编码Demo中,采集到的摄像头的YUV数据在哪个相关的函数中?
-
5海鸥派openEuler无法启动网卡,连接WIFI存在问题
-
66有没有ISP相关的巨佬帮忙看看SS928对接IMX347的图像问题
-
50求助hi3559与FPGA通过SLVS-EC接口对接问题
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明