Articles of ffmpeg

如何使用ffmpeg / libavcodec / libstagefright

我刚才有一个关于如何使用ffmpeg/libavcodec/libstagfright.cpp :当我使用ffmpeg将codec->id设置为CODEC_ID_H264,codec->name为libstagefright_h264 ,我尝试使用avcodec_open2(st->codec, codec) ,这意味着我将打开AVCodec ff_libstagefright_h264_decoder 。 但是当Stagefright_init->OMXCodec::Create->configureCodec-> initOutputFormat(meta) ,这个过程就退出了! 这是一个bazinga! 我知道元是元数据,它的数据来自codec->extradata ,在这里,它意味着sps和pps,我是对的吗? 如何在ffmpeg中成功使用libstagefright ? 有人能举个例子吗?

使用halfninja ffmpeg在Android中连接mp4文件

我已经设法使用NDK版本r5c为Android NDK编译halfninja ffmpeg脚本 。 (不幸的是,任何使用早期NDK编译的尝试都会产生一些错误),而且我对整个NDK过程并不是很了解,所以对我来说这有点让人失望。 他的脚本正在编译ffmpeg版本N-30996-gf925b24(他为脚本执行的具体提交) 继续我的实际应用程序。 我设法修剪video没有问题,现在我需要加入/连接它们,但任何尝试使用在这3个链接( link1 , link2 , link3 )上find的命令的任何和几个组合产生错误,如cat is not valid , > is undefinined , unknown option filter_complex或尝试覆盖某些输入文件。 有没有人知道是否可能和(怎么做),加入/连接mp4video(所有相同的编解码器,大小,质量等)使用Android上的半连队编译ffmpeg,或如何编译/获取ffmpeg Android使用最新的源代码? 我也快速尝试了mp4Parser并没有取得多大成功。 最终我试图让这个伪方法起作用: public static File concatenate(String[] inputPaths, String outputPath){ // … do stuff do generate ffmpeg commands…. VideoKit v = new VideoKit(); v.run(cmds); File f = new File(outputPath); […]

在android中检测录制video的方向

我想制作我的自定义媒体播放器并需要video的方向信息(用于检测它是从前置或后置摄像头录制的)。 对于jpeg图像,我可以使用ExifInterface.TAG_ORIENTATION但对于video我如何能够find这些信息。 我试图从video文件中获取帧并将其转换为jpeg,但在所有情况下它总是提供方向0 。 请帮帮我。 提前致谢。

使用FFMPEG和JNI压缩video

我想创建一个Android应用程序,它可以find一个video文件(超过300 MB)并将其压缩到较小的mp4文件。 我已经尝试用这个做了 由于您要压缩小尺寸video(低于100 mb),因此本教程非常有效 所以我尝试使用JNI实现它。 我设法用这个来构建ffmpeg 但目前我想做的是压缩video。 我对JNI知之甚少。 但我尝试使用以下链接了解它 如果有人可以指导我在打开文件之后压缩video的步骤,那么使用非常棒的JNI,谢谢

如何在Vigo Video Hypstar等摄像机上实时预览录像机

我想用Gif或图像像Vigo更改Surface预览底部叠加层 喜欢这个 请告诉我任何sdk或我用于此filter的内容 我可以使用此更改顶视图上的叠加层 这有帮助 PictureCallback cameraPictureCallbackJpeg = new PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { // TODO Auto-generated method stub Bitmap cameraBitmap = BitmapFactory.decodeByteArray (data, 0, data.length); int wid = cameraBitmap.getWidth(); int hgt = cameraBitmap.getHeight(); // Toast.makeText(getApplicationContext(), wid+””+hgt, Toast.LENGTH_SHORT).show(); Bitmap newImage = Bitmap.createBitmap (wid, hgt, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(newImage); […]

FFMPEG具有硬件编解码器支持

我在Android 2.2上使用ffmpeg构建了一个简单的媒体播放器。 硬件是基于arm cortex-a8的1GHz处理器,512 MB RAM。 我的性能很低,大约15 FPS的800×600 mp4video。 关于如何提高性能,我有几个问题 如何使用目标设备上提供的硬件编解码器。 如何配置ffmpeg以使用可用的硬件解码器? GPU或图形驱动程序是否必须公开一些标准API,如OpenMax IL才能实现这一目标? 构建ffmpeg时应该启用哪些选项,以便可以针对目标硬件进行优化? 类似的东西: – –cpu=cortex=a8 –extra-cflags=”-mfpu=neon” … 我已经看过网了但我找不到我要找的答案。 我希望有人可以就此提出建议。 提前致谢!

如何在Android中使用FFMPEG库播放video?

我能够使用摇滚播放器构建脚本构建ffmpeg库。 现在我有这个.so文件,我该怎么播放video? 我想在我的Activity一个小的LinearLayout中显示这个video。 可能吗? 更新:我知道使用VideoView或MediaPlayer + SurfaceView播放video很容易。 我只想更多地了解ffmpeg库以及如何在Android Activity显示帧。

使用FFMpeg为Android解码video

我尝试使用互联网上提供的示例示例中的FFMpeg库解码video,我用新版本的ffmpeg搞清楚,这是我从我的类文件中调用的代码, private static native int decodeVideo(String filename); decodeVideo(getString(R.string._sdcard_abc_3gp)); 现在位于JNI目录的.c文件中,我写了这段代码, jint Java_ru_dzakhov_ffmpeg_test_MainActivity_decodeVideo(JNIEnv* env, jobject javaThis,jstring filename) { AVFormatContext *pFormatCtx; int i, videoStream; AVCodecContext *pCodecCtx; AVCodec *pCodec; AVFrame *pFrame; AVFrame *pFrameRGB; AVPacket packet; int frameFinished; int numBytes; uint8_t *buffer; // Register all formats and codecs av_register_all(); // Open video file const jbyte *str; str = (*env)->GetStringUTFChars(env, filename, […]

FFMPEG推动RTMP流无法在Android和iPhone上运行

我必须做一个半直播。 我使用了Nginx-rtmp模块,然后通过ffmpeg将内容推送到它: ffmpeg -re -i content.mp4 -r 25 -f fvl “rtmp://rtmp.server.here” 当我在VLC中从“rtmp://rtmp.server.here”打开它时,流运行正常 但我还必须制作播放这些流的iPhone和Android应用程序。 这就是问题,流不适用于Android和iPhone。 如果我使用Wowza流云并流式传输到Wowza云而不是我自己的nginx-rtmp服务器,那么为Android和iPhone编写的相同应用程序可以正常播放流。 现在要么nginx-rtmp不正常,要么还有什么? 我也试过crtmpserver,同样的事情发生了。 我想要实现的目标:我必须开发一个系统,我们可以上传电video道(拥有它的权利)到服务器,然后制作一个网站,Android应用程序和iPhone应用程序,以便消费者可以观看直播频道。 上传部分我有一个线索,可能是电视调谐卡和开放广播软件将其流式传输到服务器。 但现场播放对我来说是新的。 更新:我也使用了ffprobe,这是输出。 (见最后一行) munir@munir-HP-ProBook-450-G2:~$ ffprobe rtmp://rtmp.server.here ffprobe version 2.6.2 Copyright (c) 2007-2015 the FFmpeg developers built with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1) configuration: –extra-libs=-ldl –prefix=/opt/ffmpeg –enable-avresample –disable-debug –enable-nonfree –enable-gpl –enable-version3 –enable-libopencore-amrnb –enable-libopencore-amrwb –disable-decoder=amrnb –disable-decoder=amrwb –enable-libpulse –enable-libx264 –enable-libx265 […]

工作目录:null环境:null

我试图在Android上使用ffmpeg.so我正在获取工作目录:null环境:null错误。 try { Process p = Runtime.getRuntime().exec(“/data/data/com.example.foo/files/ffmpeg -f image2 -i ” + Environment.getExternalStorageDirectory().getAbsolutePath() + “/img/b%d.jpg ” + Environment.getExternalStorageDirectory().getAbsolutePath() + “/DCIM/Camera/a444.mp4”); } catch (IOException e) { e.printStackTrace(); } 错误日志 04-09 01:50:45.683: I/Adreno-EGL(18393): : EGL 1.4 QUALCOMM Build: I0404c4692afb8623f95c43aeb6d5e13ed4b30ddbDate: 11/06/13 04-09 01:50:45.713: D/OpenGLRenderer(18393): Enabling debug mode 0 04-09 01:53:56.487: D/dalvikvm(18551): Trying to load lib /data/app-lib/com.example.sodeneme-1/libffmpeg.so 0x423d7d00 04-09 […]