VLC裁剪和移植到S3C6410

简介: 1 由于项目需求,这几天在折腾VLC,需要将它裁剪并移植到PowerPC上,由于板子没有到,先在6410上跑。目前从需求看我们只要VLC作为一个server即可,先贴配置,如下:(几乎disable掉所有东东) #!/bin/sh # for arm #CC=/opt/arm...

1 由于项目需求,这几天在折腾VLC,需要将它裁剪并移植到PowerPC上,由于板子没有到,先在6410上跑。目前从需求看我们只要VLC作为一个server即可,先贴配置,如下:(几乎disable掉所有东东)

#!/bin/sh

# for arm
#CC=/opt/arm-2008q3/bin/arm-none-linux-gnueabi-gcc  \
#CXX=/opt/arm-2008q3/bin/arm-none-linux-gnueabi-g++  \
#ARCH=arm \
#    --host=arm-none-linux-gnueabi \

build_alias=i486-linux-gnu \
CFLAGS='-g -O2' \
LDFLAGS=-Wl,--as-needed \
CPPFLAGS= \
CXXFLAGS='-g -O2' \
./configure  \
    --build=i486-linux-gnu \
    --enable-run-as-root \
    --prefix=/tmp/vlc \
    --with-binary-version=2ubuntu1 \
    \
    --enable-debug \
    --disable-hal \
    --disable-mtp \
    --disable-dbus \
    --disable-dbus-control \
    --disable-telepathy \
    --disable-mmx \
    --disable-sse \
    --disable-lua \
    --disable-notify \
    --disable-audioscrobbler \
    --disable-taglib \
    --disable-live555 \
    --disable-dc1394 \
    --disable-dv \
    --disable-dvdnav \
    --disable-smb \
    --disable-dvbpsi \
    --disable-v4l2 \
    --disable-libcdio \
    --disable-libvcdinfo \
    --disable-libcddb \
    --disable-cdda \
    --disable-vcd \
    --disable-dvb \
    --disable-ogg \
    --disable-mkv \
    --disable-mod \
    --disable-mpc \
    --disable-gme \
    --disable-mad \
    --disable-avcodec \
    --disable-avformat \
    --disable-swscale \
    --disable-postproc \
    --disable-libsysfs \
    --disable-libtar \
    --disable-a52 \
    --disable-dca \
    --disable-zvbi \
    --disable-x11 \
    --disable-xvideo \
    --disable-glx \
    --disable-xinerama \
    --disable-xcb \
    --disable-opengl \
    --disable-sdl \
    --disable-sdl-image \
    --disable-freetype \
    --disable-fribidi \
    --disable-fontconfig \
    --disable-libxml2 \
    --disable-hd1000v \
    --disable-skins2 \
    --disable-qt4 \
    --disable-atmo \
    \
    --disable-vlm \
    --disable-screen \
    --disable-wma-fixed \
    --disable-id3tag \
    --disable-fb \
    --disable-oss  \
    --disable-pulse \
    --disable-alsa  \
    --disable-upnp  \
    --disable-ncurses \
    --disable-visual \
    --disable-libgcrypt \
    --disable-vlc \
    \
    --disable-gnutls \
    --disable-remoteosd \
    --disable-libmpeg2 \
    --disable-vorbis \
    --disable-speex \
    --disable-schroedinger \
    --disable-png \
    --disable-x264 \
    --disable-fluidsynth \
    --disable-cmml \
    --disable-kate \
    --disable-tiger \
    --disable-bonjour \
    \
#    --disable-httpd \
#    --enable-static \

2 上面的配置中,将arm部分替换则可以在我们的S3C6410开发板上作为server运行。

3 --enable-static不能加:目前不知道为什么,反正加上后会报告 assert (p_module_bank);通不过,具体原因未跟踪。

4 在开发板上运行:
从板子上挂载编译机器:mount -o nolock 192.168.2.240:/tmp /mnt
在板子上运行:LD_LIBRARY_PATH=$PWD/lib ./bin/vlc --plugin-path=$PWD ../1.mp4 --sout '# std{access=mmsh,mux=ts,dst=192.168.2.225:1234}'
这里注意2点:1) LD_LIBRARY_PATH:可以看ld.so的manuel。2)VLC的参数,--plugin-path=$PWD。

5 到目前为止,在几乎没有动过VLC的具体实现代码的情况下,便移植到S3C6410上成功运行,说明VLC代码质量还是不错的。

6 裁剪移植思路:
1 通过configure尽量去掉无用模块:需要在PC段不断试验,这正是我上一篇blog记录使用distcc的原因。
2 利用新的PC环境模拟开发板来进行调试:这里我使用一台装在笔记本上的vmware来实现。vmware干净安装ubuntu9.04,将编译好的VLC安装到vmware上,通过比较找到那些必须的模块,同时,在PC上模拟可以很方便的使用GDB(CGDB)等工具辅助。提高效率。

3 PC段ok了就可以上板子了,尽量找功能完善的板子来用(我遇到过开发板自己有问题导致走了很多弯路的情况)。
4 多google(为什么不是100du?),学习前辈们的经验:有时候直接将错误信息放到搜
索框中就能找到答案。

7 移植虽然耗时间,但是还是比较顺利的。后继工作需要静下心来搞清楚VLC的各个细节了。VLC对我们后继产品还是有不少帮助的,just like mplayer。

8 多总结,共享自己的成果和过程。只有整个团队得到提高,我们项目组、甚至公司的研发实力才能真正提高。在我们这样的技术性公司,技术不是万能,但是没有技术则万万不能。

本文来自CSDN博客,转载请标明出处:file:///H:/文件夹文件存档/我的VLC/ARM——VLC移植文档/VLC裁剪和移植到S3C6410%20-%20chenee543216的专栏%20-%20CSDN博客.mht

相关文章
|
6月前
|
Linux 编解码 Python
FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器
AV1是一种高效免费的视频编码标准,由AOM联盟制定,相比H.265压缩率提升约27%。各大流媒体平台倾向使用AV1。本文介绍了如何在Linux环境下为FFmpeg集成AV1编解码库libaom、libdav1d和libsvtav1。涉及下载源码、配置、编译和安装步骤,包括设置环境变量以启用这三个库。
303 3
FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器
|
7月前
FFmpeg开发笔记(十八)FFmpeg兼容各种音频格式的播放
《FFmpeg开发实战》一书中,第10章示例程序playaudio.c原本仅支持mp3和aac音频播放。为支持ogg、amr、wma等非固定帧率音频,需进行三处修改:1)当frame_size为0时,将输出采样数量设为512;2)遍历音频帧时,计算实际采样位数以确定播放数据大小;3)在SDL音频回调函数中,确保每次发送len字节数据。改进后的代码在chapter10/playaudio2.c,可编译运行播放ring.ogg测试,成功则显示日志并播放铃声。
126 1
FFmpeg开发笔记(十八)FFmpeg兼容各种音频格式的播放
|
Linux API vr&ar
让终端支持播放mp3,移植mp3解码库libmad和madplay到嵌入式linux
让终端支持播放mp3,移植mp3解码库libmad和madplay到嵌入式linux
玩转easyARM imax283A开发版(一),移植madplay让板子支持mp3音乐播放
玩转easyARM imax283A开发版(一),移植madplay让板子支持mp3音乐播放
|
Java Android开发 C++
|
存储 编解码 Ubuntu
FFMPEG音频视频开发:QT获取Android、Linux、Windows系统上的摄像头数据帧与声卡音频通过FFMPEG编码为MP4存储(v1.0)
FFMPEG音频视频开发:QT获取Android、Linux、Windows系统上的摄像头数据帧与声卡音频通过FFMPEG编码为MP4存储(v1.0)
649 0
FFMPEG音频视频开发:QT获取Android、Linux、Windows系统上的摄像头数据帧与声卡音频通过FFMPEG编码为MP4存储(v1.0)
|
编译器 C语言
QT应用编程: 基于FFMPEG设计的精简版视频播放器
QT应用编程: 基于FFMPEG设计的精简版视频播放器
222 0
QT应用编程: 基于FFMPEG设计的精简版视频播放器
|
编译器 C语言 Windows
FFMPEG视频开发:Window系统下载部署FFMPEG库并获取摄像头数据保存为MP4文件存放到本地(使用FFMPEG本身接口获取摄像头数据)
FFMPEG视频开发:Window系统下载部署FFMPEG库并获取摄像头数据保存为MP4文件存放到本地(使用FFMPEG本身接口获取摄像头数据)
466 0
FFMPEG视频开发:Window系统下载部署FFMPEG库并获取摄像头数据保存为MP4文件存放到本地(使用FFMPEG本身接口获取摄像头数据)
|
存储 数据可视化 Android开发
FFmpeg 开发(08):FFmpeg 播放器视频渲染优化
前文中,我们已经利用 FFmpeg + OpenGLES + OpenSLES 实现了一个多媒体播放器,本文将在视频渲染方面对播放器进行优化。
578 0
FFmpeg 开发(08):FFmpeg 播放器视频渲染优化