草庐IT

ffmpeg-static

全部标签

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++ - 在 C++ 中链接 "static"方法时出现问题

我想调用在不同文件中定义的CPP类的一些“静态”方法,但我遇到了链接问题。我创建了一个重现我的问题的测试用例,它的代码如下。(我是C++的新手,我有Java背景,我对C有点熟悉。)//CppClass.cpp#include#includestaticpthread_tthread;staticpthread_mutex_tmutex;staticpthread_cond_tcond;staticintshutdown;usingnamespacestd;classCppClass{public:staticvoidStart(){coutdisplay();}pthread_mute

c++ - "Magic static"在另一个翻译单元的静态销毁阶段引用时单例崩溃

我有一个简单的单例类。我的singleton.h文件看起来像这样:classsingleton{...public:staticsingleton&instance();};我的singleton.cpp看起来像这样:...singleton&singleton::instance(){staticsingleton*const_instance(newsingleton);return*_instance;}在编写此类时,我认为我依赖于线程安全的函数局部静态初始化,据我所知,这将在C++标准的第6.7节中列出,如here所述。.希望我明白这是如何工作的。我正在使用November20

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++ - 使用 static_cast 实现的转换运算符

我在提出这个问题之后问这个问题here.要点很简单。假设您有两个此类:templateclassBase{...operatorconstDerived&()const{returnstatic_cast(*this);}...};classSpecialization:publicBase{...};然后假设你有一个像这样的类型转换:templatefunctionCall(constBase¶m){constT&val(param);...}问题是:这种转换的符合标准的行为应该是什么?应该和constT&val(static_cast(param))一样吗?还是应该递归迭代

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我读过这可能不适用于所有流

java - java函数中static const char *的等价性

我经常在C++中使用这个习语:/*returntype*/foo(/*parameters*/){staticconstchar*bar="Bar";/*somecodehere*/}在内部这被添加到字符串文字表中。这段Java代码是否做类似的事情:/*returntype*/foo(/*parameters*/){finalStringbar="Bar";/*somecodehere*/}还是我无意中引入了效率低下的问题? 最佳答案 字符串在Java中是不可变的。这意味着您不必通过提示让JVM知道它不会更改和优化它。字符串文字被保