Articles of ffmpeg

使用Android NDK中的Libavfilter库实现多输入filter图形

我正在尝试将overlayfilter与多个输入源配合使用,以用于Android应用。 基本上,我想在静态图像上叠加多个video源。 我查看了ffmpeg附带的示例并基于此实现了我的代码,但事情似乎没有按预期工作。 在ffmpeg过滤示例中,似乎只有一个video输入。 我必须处理多个video输入,我不确定我的解决方案是否正确。 我试图find其他例子,但看起来这是唯一的例子。 这是我的代码: AVFilterContext **inputContexts; AVFilterContext *outputContext; AVFilterGraph *graph; int initFilters(AVFrame *bgFrame, int inputCount, AVCodecContext **codecContexts, char *filters) { int i; int returnCode; char args[512]; char name[9]; AVFilterInOut **graphInputs = NULL; AVFilterInOut *graphOutput = NULL; AVFilter *bufferSrc = avfilter_get_by_name(“buffer”); AVFilter *bufferSink = avfilter_get_by_name(“buffersink”); graph = avfilter_graph_alloc(); if(graph == NULL) return -1; […]

用于裁剪和转置video的FFMPEG命令变得质量很差

我正在尝试将尺寸通常为960×720的mp4video转换为平方480:480video,但它看起来通常看起来压扁,命令是 “-y -i %s -vf crop=480:480,transpose=%d -threads 5 -metadata:s:v rotate=0 -c:v libx264 -crf 27 -preset ultrafast -c:a copy -bsf:a aac_adtstoasc %s”; 我错过了什么,我是否需要首先缩小比例? **编辑添加完整的控制台输出。 ffmpeg命令已更新,但目标仍然保持不变,采取任意video和方形裁剪 07-14 22:30:32.813: D/ffmpeg(30354): -y -i /data/data/com.myapp.app/cache:temp/i7h4ajm0nim1mbcnrqotvrhhsc.mp4 -vf scale=iw*sar:ih,transpose=1 -threads 5 -metadata:s:v rotate=0 -c:v libx264 -crf 27 -preset ultrafast -c:a copy -bsf:a aac_adtstoasc -aspect 1:1 /data/data/com.myapp.app/cache:temp/p1t3bhs0oa3lpqa67g5i9ninm9.ts 07-14 22:30:32.903: D/ffmpeg(30354): new time reamining […]

ffmpeg – 在android中使用filter

我正在尝试使用ffmpeg在我的android项目中使用电影filter。 我使用守护项目的一个分支: Cheers-dev 它使用最新版本的ffmpeg(约15天大的atm)。 我添加了选项–enable-filter=movie来激活filter。 我在我的android项目中使用这个命令行: ffmpeg -i input.mp4 -vf “movie=watermark.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]” -strict -2 outputvideo.mp4 它与Debian Wheezy上的桌面版完美配合。 但它不可能在我的Android上运行。 所有其他命令都有效。 失败时的错误: No such filter: ‘movie’ 。 我还使用选项-filter_complex测试了一个不同的错误: $ ffmpeg -y -loglevel debug -i /storage/sdcard0/test/hsgjr_export.mp4 -i /storage/sdcard0/test/watermark.png -filter_complex “[0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out]” -map [out] -map 0:a -codec:a copy /storage/sdcard0/test/hsgjr_watermark.mp4 ffmpeg version N-58429-gccdfa3e Copyright (c) 2000-2013 the FFmpeg […]

如何使用ffmpeg改变音频节奏和音调个性?

我已经设法在我的android项目中使用ffmpeg和AudioTrack类播放音频文件。 我可以使用AudioTrack类setRate方法更改音频的速度。 但它也改变了音频的音调,我想只改变音频的速度,但我发现网上没有解决方案。 任何人都可以帮助我,因为没有这方面的支持。

avcodec_find_encoder(AV_CODEC_ID_H264)返回null

我正在构建一个Android应用程序,它将编码从相机预览中捕获的图像,然后对其进行解码。 我正在使用ffmpeg库进行编码和解码。 要使用x264构建静态库,我已经使用了本教程。 http://dl.dropbox.com/u/22605641/ffmpeg_android/main.html 。 作为ffmpeg的源代码,如果我使用从教程中给出的链接下载的那个,我可以构建它但是如果我使用从这里下载的源代码git clone git://source.ffmpeg.org/ffmpeg则无法构建库。 git ffmpeg。 我在ubuntu中构建了库,并在Eclipse的Windows 7中使用它。 由于我只需要h264编码器和解码器,我使用了以下ffmpeg代码,稍微修改了一下教程。 #!/bin/bash NDK=~/Documents/android-ndk-r8e PLATFORM=$NDK/platforms/android-8/arch-arm PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86 PREFIX=/home/android-ffmpeg function build_one { ./configure –target-os=linux –prefix=$PREFIX \ –enable-cross-compile \ –enable-runtime-cpudetect \ –disable-asm \ –arch=arm \ –cc=$PREBUILT/bin/arm-linux-androideabi-gcc \ –cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \ –disable-stripping \ –nm=$PREBUILT/bin/arm-linux-androideabi-nm \ –sysroot=$PLATFORM \ –enable-nonfree \ –enable-version3 \ –disable-everything \ –enable-gpl \ –disable-doc \ –enable-avresample \ […]

平板电脑相机的/ dev / video0的Android等价物是什么?

Android Camera有/ dev / video0文件吗? 我想在Android上通过ffmpeg捕捉相机预览。 如; ffmpeg -f video4linux2 -i /dev/video0 out.mpeg

错误:仅支持位置独立可执行文件(PIE)

当我在我的代码中执行bin文件时,Android L 5.0会阻止执行这些文件,但会出现以下错误 错误:仅支持位置独立可执行文件(PIE) 我的可执行文件是FFmpeg转换器和Sox转换器 我将这些文件从原始文件夹移动到/data/data/com.mypackage/app_bin并调用 Runtime.getRuntime().exec(“/data/data/com.mypackage/app_bin/ffmpeg {commands}”) 有人可以帮我解决这个问题吗?

Android 4.x是否支持通过TCP传输RTSP?

我已经在Android中使用VideoView成功地在wowza上播放video。 现在我必须处理我的服务器,UDP端口似乎被阻止了。 使用openRTSP命令的certificate: -> % openRTSP rtsp://61.218.52.250:554/live/ch00_0 Opening connection to 61.218.52.250, port 554… …remote connection opened Sending request: OPTIONS rtsp://61.218.52.250:554/live/ch00_0 RTSP/1.0 CSeq: 2 User-Agent: openRTSP (LIVE555 Streaming Media v2013.12.16) Received 105 new bytes of response data. Received a complete OPTIONS response: RTSP/1.0 200 OK CSeq: 2 Server: UBNT Streaming Server v1.2 Public: DESCRIBE, SETUP, TEARDOWN, […]

Android – 360video元数据

因此,使用ffmpeg,我将两个360video连接成一个。 问题是我丢失了最终video中的所有360video元数据(因此它不再被视为360video)。 如果我在最终video中使用exiftool,我缺少那些元数据: 球形:真实 缝合:真的 拼接软件:球形元数据工具 投影types:equirectangular 我试图用ffmpeg注入那些元数据,例如: ffmpeg -i -metadata Spherical=”true” -codec copy 这样做我没有任何错误,但exiftool仍然没有显示metadatas。 我知道Google有一个Python脚本可以很好地完成这一点 。 但我想在我的应用程序中注入metadatas,任何帮助将不胜感激, 谢谢 !

Android:ExoPlayer – 从video中获取当前帧编号

我正在开发一个Androidvideo应用,我需要在暂停模式下获取正在显示的video的当前帧编号 。 我需要向我的服务器发送当前在video中暂停的帧编号并获取有关该帧/时间的项目列表,现在我发送当前暂停时间(以毫秒为单位),但它不能很好地工作,因为服务器根据时间比较发送到其计算的特定帧的时间,但有时比较不准确。 我知道如果你使用MediaMetaDataRetriever ,你可以从该帧获得一个位图,我做了它,但它返回位图图像,我需要的是一个索引。 我正在使用ExoPlayer(我需要MP4和HLS的function,如果这很重要)。 有没有办法从video中获取该信息?