首先说明,这不算原创文章,但是实践过的结果。在录制视频,截图,vlc已经做得很好了。但对于 android,它并没有添加这项功能,从源码也可以看到,截图似乎还有一些bug未修正。
然而有时播放在线视频流,希望截图,录制,可以通过修改一些代码实现了。
参考的文章:
http://blog.csdn.net/vertx/article/details/8639322
还有其它csdn里面的博文,之后补上地址。大体相同。
同时由于录制视频的patch较旧了,所以上传一个新的patch,包含了ffmpeg的配置,和configure.sh,jni的修改。
下载,是简单的,环境准备不作说明,jdk,ndk,sdk(如果不想编译成apk,可以忽略,但要配置路径).
编译环境是ubuntukyln 64 本来是下载kubuntu的,结果下载的文件不是。
git clone git://git.videolan.org/vlc-ports/android.git android-vlc --depth=1
下载完成后进入目录android-vlc
cd android-vlc
cp compile.sh build.sh 新建一个
然后把patch解压,其中的vlc_record_config.patch复制到android-vlc目录中,运行:
patch -p1 git clone git://git.videolan.org/vlc/vlc-2.2.git vlc --depth=1 主要是加快下载,
运行build.sh:
./build.sh release
过一会就会下载 vlc源码,下载完成后,会下载tar包,先停止,ctrl+c
然后 复制patch到vlc目录,运行 patch -p1 vlc_video.patch生成一个patch,这个文件就可以下次用了。
然后再回到上层目录 android-vlc,运行build.sh release运行,下载tar包,编译,下载过程看网络,编译大概十几分钟,一般的双核机器了。
整个目录大小约1g,所以磁盘空间的准备自己有数了。
so文件大约是15.6m,这有点大了,我想自己配置ffmpeg,但取消一些decoder,encoder后11m左右,发现,有图没有声音,官方论坛上也有人出现这个,但后面的并没有看到一个明确的答案。所以体积就没有办法减少了。
除了上面的c部分,剩下就是jni调用的java部分的编写了。
还有一点说明,--disable-sout这个在build.sh里面也有,一开始我在这个文件里面删除了,结果问题来了, 编译不成功,还下载了x265几个包。这个要在configure.sh里面处理。不知道--disable-x265不加会不会有问题,看一x264禁用了,所以干脆也添加了这个。
vlc的编译,经常会出现一些问题,之前就出现no/lib这个找不到,是speex的相关的,但也没办法。
还有zlib.a这个就是路径不对了。可以在vlc/下面的目录查找,然后在android.mk文件里修改。有些又不会有这个问题。
编译过程结束了。虽然本人未运行过,但也算是一个阶段了,之前csdn里面有下载的,确实可以保存视频,图片,下次有时间把其它的功能加上。
包里有三个文件,Add-new-API-to-libvlc-to-record这个是从国外网站上下载的patch,但里面有些旧了,行数对不上,所以无法打补丁,后面两个是本人自己制作的。对于 2014-9-8 号的最新代码是有效的。
最后把结果传上来:
http://pan.baidu.com/s/1bn7yqwJ 网盘可以下载到tar包,有些下载较慢.
https://github.com/archko/android-vlc.git 可以下载到源码,这个跟官方的稍有不同.
添加了一个列表,使用直播地址.
目前,录制视频可以,但抓图还有问题.还有些错误:
09-08 20:26:57.066: E/VLC(30994): chain filter: Too high level of recursion (2)
09-08 20:26:57.066: E/VLC(30994): core filter: Failed to create video filter2
09-08 20:26:57.066: E/VLC(30994): chain filter: Too high level of recursion (2)
09-08 20:26:57.066: E/VLC(30994): core filter: Failed to create video filter2
09-08 20:26:57.066: E/VLC(30994): chain filter: Too high level of recursion (2)
09-08 20:26:57.066: E/VLC(30994): core filter: Failed to create video filter2
09-08 20:26:57.066: E/VLC(30994): core filter: Failed to create video filter2
09-08 20:26:57.066: E/VLC(30994): chain filter: Too high level of recursion (2)
09-08 20:26:57.066: E/VLC(30994): core filter: Failed to create video filter2
09-08 20:26:57.066: E/VLC(30994): chain filter: Too high level of recursion (2)
09-08 20:26:57.066: E/VLC(30994): core filter: Failed to create video filter2
09-08 20:26:57.066: E/VLC(30994): chain filter: Too high level of recursion (2)
09-08 20:26:57.066: E/VLC(30994): core filter: Failed to create video filter2
09-08 20:26:57.066: E/VLC(30994): core filter: Failed to create video filter2
09-08 20:26:57.066: E/VLC(30994): chain filter: Too high level of recursion (2)
09-08 20:26:57.066: E/VLC(30994): core filter: Failed to create video filter2
09-08 20:26:57.066: E/VLC(30994): chain filter: Too high level of recursion (2)
09-08 20:26:57.066: E/VLC(30994): core filter: Failed to create video filter2
09-08 20:26:57.066: E/VLC(30994): chain filter: Too high level of recursion (2)
09-08 20:26:57.066: E/VLC(30994): core filter: Failed to create video filter2
09-08 20:26:57.066: E/VLC(30994): core filter: Failed to create video filter2
09-08 20:26:57.066: E/VLC(30994): core video output: Failed to convert image for snapshot
分享到:
相关推荐
在这个“vlc-android实现截图,录制视频Dome程序”中,我们重点探讨如何利用VLC库在Android应用中实现视频播放、截图以及录制功能。 **一、VLC的Android集成** 在Android项目中集成VLC,你需要将提供的源码解压缩并...
VLC for Android 是 VLC 媒体播放器到 Android™ 平台的完整端口。它可以播放任何视频和音频文件,网络流和 DVD ISO,例如 VLC 的经典版本。VLC 具有完整的音乐播放器,媒体数据库,均衡器和过滤器以及许多其他功能...
3. **录像功能**:VLC-Android 2.16版本提供录制视频的功能,用户可以保存当前播放的视频流,这对于保存直播内容或者需要反复查看的视频片段尤为有用。录制质量会根据设备性能和存储空间自动调整,以保证最佳效果。 ...
播放rtsp视频流(减少了延时),也可以播放本地视频。具体请参见代码。...源码为编译vlc官方最新版,加上截图与录像功能后精简而成的。源码可以直接使用,能够避免自己编译和修改过程中的费时费力。
在Android开发中,VLC库(通常称为VLC SDK)可以帮助开发者实现多种功能,如RTSP流媒体播放、屏幕录制和截图等。以下将详细介绍这些功能的实现原理和步骤。 1. **RTSP播放** RTSP(Real Time Streaming Protocol)...
在这个"vlc-android精简源码 截图和录制视频功能 rtsp.rar"压缩包中,我们可以找到针对Android平台的VLC源码,以及与截图和录制视频相关的功能。 首先,让我们深入理解RTSP协议。RTSP是一种应用层协议,用于控制...
VLC for Android 3.1.5是一款专为Android设备设计的多媒体播放器应用,它基于流行的开源跨平台媒体播放器VLC Media Player。这个版本是针对x86_64架构的Android设备优化的,这意味着它适用于使用64位Intel处理器的...
VLC for Android 1.0.0更新内容: Android版VLC应用正式升级至1.0.0版本; 新版修复了ARMv8处理器,Android 5.0上的崩溃问题并在细节处进行了调整; 新版全新的界面已经在黑色和白色主题中使用; 整合了DVD iso和...
6. **项目导入与依赖管理**: 在Android Studio中,为了使用VLC for Android项目,你需要将这个压缩包以及ActionBarSherlock和SlidingMenu两个项目一起导入。Android Studio支持Gradle构建系统,通过添加依赖项到...
vlc for android beta 0-0-8 。armv7 neon 版本的vlc for android
VLC for Android是一款知名的开源媒体播放器,专为Android设备设计。版本3.1.5提供了对多种视频和音频格式的支持,以及丰富的自定义选项,让用户可以在移动设备上享受流畅的多媒体体验。在这个特定的压缩包中,包含...
VLC for Android是一款流行的开源媒体播放器,专为Android设备设计。它基于VideoLAN的VLC Media Player,这个跨平台的多媒体解决方案在全球范围内广受欢迎。2014.9版本可能指的是该应用的一个特定更新,这通常是修复...
VLC for Android是一款流行的开源媒体播放器,专为Android设备设计。它基于VideoLAN的VLC Media Player项目,提供跨平台的多媒体播放功能。在这个特定的压缩包中,包含了适用于Android 4.2.2版本的VLC源码,这意味着...
- **vlc-android**: 这是VLC for Android的主要源代码目录,包含所有与VLC相关的类和资源文件。 - **appcompat**: 这是Android的兼容库,使开发者能够使用新版本的Android UI组件在旧版本的系统上运行。 5. **...
【vlc-android播放rtsp视频流demo】是一款专为Android平台设计的应用示例,它演示了如何集成VLC库来播放RTSP(Real Time Streaming Protocol)视频流。VLC是一款广泛使用的开源媒体播放器,它支持多种媒体格式和流...
VLC for Android can play any video and audio files, as well as network streams and DVD ISOs, like the desktop version of VLC. VLC for Android is a full audio player, with a complete database, an ...
VLC for Android还支持字幕、音轨切换、屏幕截图、流媒体录制等功能。源码揭示了如何集成这些功能,并提供可定制的用户体验。 7. 性能优化: 为了在Android设备上提供流畅的播放体验,VLC进行了大量的性能优化,...
VLC for Android是一款流行的开源媒体播放器,它支持多种视频流协议,包括RTSP(Real Time Streaming Protocol)。在Android平台上,结合OpenCV库,我们可以实现对RTSP视频流的实时人脸检测功能。以下是对这个主题的...
1. **源代码文件**:包含了Vlc-Android播放器的Java或Kotlin源代码,开发者可以通过阅读和理解这些代码,学习如何与VLC库交互,以及如何实现自定义功能。 2. **资源文件**:如XML布局文件、图片、字体等,这些都是...
自己编译的VLC for Android,官方最新的源代码,在Android5.0上测试通过