草庐IT

android - 正确构建适用于所有 Android 架构的 FFmpeg

我为所有android架构构建了ffmpeg库。但是有些细节让我很困惑。首先让我一步一步解释我是如何构建的。我下载了最新版本的libx264从https://www.videolan.org/developers/x264.html创建并运行build_all.sh用于为(几乎)所有android平台创建库的脚本(在x264文件夹中)。然后我得到了androidx264文件夹中的文件夹。例如android/armandroid/arm64android/x86android/x86_64在x264文件夹中。我下载了ffmpeg3.3.4来自https://ffmpeg.org/down

ffmpeg命令大全(音视频拆分、倒放、拼接、绿幕变透明、位置截取)

构建堡垒机存放文件路径output_file='sort.mp4'output_folder='/home/bmxm/FFmpeg_134/split/'+username+'/'+modelname+'/'+str(timestamp)cmd='mkdir-p'+output_folderos.system(cmd)#构建输入文件、输出文件的完整路径output_path=os.path.join(output_folder,output_file)1.音视频文件倒放:构建倒放命令ffmpeg-iinput.mp4-vfreverse-afareverse-presetsuperfastou

FFmpeg学习笔记--FFplay播放控制、FFplay基本命令参数、FFplay高级命令参数

目录1--FFplay播放控制2--FFplay命令参数1强制显示宽高,用于调整窗口大小2设置帧尺寸,仅适用于没有包含帧大小的视频3设置像素格式4以全屏模式启动5禁用音频、视频和字幕6设置开始播放的位置7设置播放视频的长度,即持续时间8设置按字节进行定位拖动9自定义左右键拖动间隔,以秒为基本单位,默认为10秒10关闭图形化显示窗口,不显示视频11设置无边框窗口12设置起始音量13强制使用设置的格式进行解析14设置窗口标题,默认为输入文件名15设置播放循环次数16设置显示模式,默认为0显示视频17设置视频滤镜和音频滤镜3--FFplay高级命令参数1打印多个回放统计信息2设置同步类型3指定音频流

android - 使用 FFMPEG 和 JNI 压缩视频

我想创建一个android应用程序,它可以找到一个视频文件(超过300mb)并将其压缩为较小的mp4文件。我已经尝试用this来做到这一点本教程非常有效,因为您要压缩的是小视频(小于100mb)所以我尝试使用JNI来实现它。我设法使用this构建了ffmpeg但目前我想做的是压缩视频。我对JNI不是很了解。但我尝试使用以下link来理解它如果有人可以指导我使用JNI打开文件后压缩视频的步骤,那真的很棒,谢谢 最佳答案 假设您有输入文件的字符串路径,我们可以很容易地完成您的任务。我假设您了解NDK基础知识:Howtoconnectan

c++ - 使用 ffmpeg 从网络摄像头捕获帧和从 micro 捕获音频并保存到文件

在过去的几周里,我一直在努力使用ffmpegAPI,因为我找不到明确的文档,而且我也发现很难搜索,因为我在网上找到的所有解决方案都涉及ffmpeg.c而不是cAPI命令行程序。我正在创建一个程序,它需要从网络摄像头和音频中捕获视频,在屏幕上显示帧并将音频和帧记录到视频文件中。我也在使用QT作为这个项目的框架。我已经能够在屏幕上显示帧甚至记录它们,但我的问题是音频和视频的记录。我决定创建一个更简单的测试程序,它只将流保存到文件而不在屏幕上显示帧,从remuxing.cexample开始在ffmpeg文档上。我的代码如下://Thisisthevariablesonthe.hAVOutpu

c++ - 使用 ffmpeg (c++) 编码 AAC

我正在研究将在Unity插件中使用的视频编码。我已经使图像编码工作,但现在我在处理音频。所以只尝试将音频转换为AAC编码的mp4文件。我卡住了。结果文件不包含任何内容。另外,据我了解,ffmpeg中的AAC仅支持AV_SAMPLE_FMT_FLTP,这就是我使用它的原因。这是我的代码:设置:intinitialize_encoding_audio(constchar*filename){intret;AVCodecIDaud_codec_id=AV_CODEC_ID_AAC;AVSampleFormatsample_fmt=AV_SAMPLE_FMT_FLTP;avcodec_regi

c++ - 从 C++ 中的 AVFrame (FFMPEG) 中提取 RGB 值

我目前正在尝试使用FFMPEG读取视频帧。格式为PIX_FMT_RGB24;对于每一帧,RGB值都在frame->data[0]中组合在一起(其中frame是AVFrame类型)。如何为每一帧提取单独的R、G和B值?这是为了处理视频。我认为它的工作方式与从位图中提取RGB值的方式相同。谢谢! 最佳答案 我的猜测:intp=x*3+y*frame->linesize[0];r=frame->data[0][p];g=frame->data[0][p+1];b=frame->data[0][p+2];我可能把r、g和b倒过来了。而且还有

c++ - ffmpeg c/c++ 获取帧数或时间戳和 fps

我正在使用ffmpeg解码C中的视频文件。我正在努力获取我正在解码的当前帧的计数或帧的时间戳。我已经阅读了许多文章,这些文章展示了如何根据fps和帧时间戳计算估计的帧数,但是我无法获得其中任何一个。我需要的:视频文件的fps,当前帧的时间戳或帧号(未计算)我所拥有的:我可以使用获取视频的时间pFormatCtx->duration/AV_TIME_BASE我在处理它们时计算当前的帧数,并获取当前的帧数,但这不会长期有效。我可以使用获取文件的总帧数pFormatCtx->streams[currentStream->videoStream]->nb_frames我读过这可能不适用于所有流

C++ FFMPEG 不写入 AVCC 框信息

我正在尝试使用C++中的FFMPEGAPI将原始H264编码为mp4容器。一切正常,但AVCC框为空,并返回错误:[iso文件]框“avcC”大小8无效如果我然后在输出文件上使用命令行工具:ffmpeg-ioutput.mp4-vcodeccopyfixed.mp4输出文件有效,并且AVCC填充了所需的信息。我不知道为什么这个命令行参数有效,但我无法使用API产生相同的结果。我在C++代码中做了什么(也在函数调用之间做了一些事情):outputFormat_=av_guess_format("mp4",NULL,NULL);//AV_CODEC_H264formatContext_=a

c++ - 未定义对 avcodec_alloc_context 的引用但 ffmpeg 链接器顺序正确吗?

我想构建静态链接到libavcodec和libavformat的静态链接可执行文件。静态ffmpeg库是用以下方法构建的:./configure--enable-static--enable-gpl--enable-nonfree--disable-vaapi--disable-libopus--prefix=myBuild--disable-swresample链接器设置如下:g++-O2-static-omyBinmyBin-myBin.osomeotherlibraries.a-L/ffmpeg/myBuild/lib-lavformat-lavcodec-lavutil-lrt