libav相关内容
我需要从管道或插座解码视频,然后转换它的图像集和绘制与Qt(4.8.5!!)。 我正在使用libAV的默认示例并添加我需要的内容。 以下是我的代码: AVCodec *codec; AVCodecContext *codecContext= NULL; int frameNumber, got_picture, len; FILE *f; AVF
..
我在我的项目中使用 libavcodec 和 libavformat,但是当我执行在另一台机器上构建的二进制文件时,我收到以下错误: 加载共享库时出错:libavcodec.so.53:无法打开共享对象文件:没有这样的文件或目录 我用 libav 安装了 ffmpeg 并尝试了以下命令: sudo apt-get install ffmpeg libavcodec-dev libavfor
..
我已经从 CDN 下载了 flv 格式的视频(视频 H264 和音频 AAC)并将它们重新混合为 MP4 格式.但是视频有长度限制.所以我将每个视频分几个部分下载:从起点开始,在点 1,在点 2(通过在 url 中使用 seek 参数).每个点的开始都比前一个点的结束早一点. 使用 av_read_frame 我扫描了所有部分,发现相交的数据包不仅具有相同的大小和顺序,而且它们的 dts/pts
..
注意:我知道 ffmpeg 和 libav 是不同的库.这是两者的共同问题. 免责声明:SO 问题的重复 标记为已回答但实际上没有给出正确的解决方案. UDP 缓冲区大小不足会导致多个高分辨率视频流的流中断.在 LibAV/FFMPEG 中,可以通过附加一些 选项(缓冲区大小). 但是,对于 RTSP 网址,这是不支持. 这些是我找到的唯一解决方案: 重建 ffmpe
..
这是我的问题: 我从源代码(版本 1.2)构建了 ffmpeg,libav* 库位于/usr/local/lib 中,它们是静态的 我正在编译一个 ns3 (www.nsnam.org) 模块,所以我对链接器的唯一控制是通过环境变量 LINKFLAGS 在源代码中,标题位于“extern C"块中,因此它不是通常的 g++ 名称修改 我设置了 LINKFLAGS="-I/usr/loc
..
我正在考虑重新混合一些包含音频和视频的容器,以便我提取最好的第一个音频流,并将其存储在一个新容器中,例如仅存在音频流. FFmpeg 的输出上下文是这样创建的: AVFormatContext* output_context = NULL;avformat_alloc_output_context2( &output_context, NULL, "mp4", NULL ); 我有一个可
..
当我在 Ubuntu 上运行 ffmpeg 时,它显示: $ ffmpegffmpeg 版本 v0.8,版权所有 (c) 2000-2011 Libav 开发者建于 2012 年 2 月 28 日 13:27:36,使用 gcc 4.6.1该程序不再开发,仅用于兼容性.请改用 avconv(有关不兼容更改的列表,请参阅更改日志). 或者显示(取决于 Ubuntu 版本): $ ffmpegf
..
我正在使用 pyav 来处理实时 RTSP 流: 导入av导入时间URL = "RTSP_url";容器 = av.open(网址,'r',选项={'rtsp_transport': 'tcp','超时':'5000000','max_delay': '5000000',})对于 self.container.demux(video=0) 中的数据包:对于 packet.decode() 中的帧
..
我在这里指的是这个线程:将AVPackets混合为mp4文件 那里的问题基本上与我的问题相同,第一个答案看起来非常有希望.用户 pogorskiy 提供的源代码(伪类)似乎完全符合我的要求: AVOutputFormat * outFmt = av_guess_format("mp4",NULL,NULL);AVFormatContext * outFmtCtx = NULL;avfor
..
我正在开发一个应用程序,它使调用在Windows上, ffprobe 返回某些文件的 -1094995529 的非常规退出状态.此退出状态始终保持不变,并且有一些讨论这个. 为什么给定该值,它在哪里记录?在允许出口状态受到更多限制的Unix机器上,我可以期望这种状态有所不同吗? 解决方案 来自ffmpeg的错误代码(来自avutil的error.h): http://ffmpeg.o
..
LibAV/FFMpeg线程安全吗?例如.我可以在一个线程中使用AVFormatContext *从文件中读取文件,然后通过简单地添加互斥锁在另一个线程中对读取的数据包进行解码,或者该库的线程安全性是“无关紧要"类型的交易吗?我知道libav对编码器线程具有基本的支持,但是我正在尝试更多的黑盒类型方法,将其分解为多个线程(源->解码器->过滤器->编码器->接收器),并试图理解其复杂性.这样的.
..
这里是指向类似问题的链接: init 中的文件"C:\ Program Files \ Python36 \ lib \ subprocess.py",第707行restore_signals,start_new_session)_execute_child中的文件"C:\ Program Files \ Python36 \ lib \ subprocess.py",第990行startupin
..
我正在编写一个应用程序,该应用程序从输入文件(任何编解码器,任何容器)解码单个视频流,进行一堆图像处理,并将结果编码为输出文件(单个视频流,Quicktime RLE,MOV)).我正在使用ffmpeg的libav 3.1.5(目前为Windows构建,但该应用程序将是跨平台的.) 输入帧和输出帧之间存在1:1对应,我希望输出中的帧时序与输入相同.我确实很难做到.因此,我的一般问题是:如何可
..
我正在尝试使用libswresample API将解码后的音频帧从48KHz重新采样到44.1KHz.我的代码如下: //'frame'是原始的解码音频帧AVFrame * output_frame = av_frame_alloc();//没有这个,输出就根本没有声音(我猜是PTS的东西)av_frame_copy_props(output_frame,frame);output_frame-
..
我正在考虑重新混合一些容纳音频和视频的容器,以便提取最佳的第一个音频流,并将其存储在新的容器中,例如仅存在音频流. 创建FFmpeg的输出上下文如下: AVFormatContext * output_context = NULL;avformat_alloc_output_context2(& output_context,NULL,"mp4",NULL); 我有一个可接受的输出清
..
我试图熟悉libav,以便处理来自支持GenICam的摄像机的原始H.264流. 我想通过GenICam提供的接口(API)接收原始数据,然后将该数据转发到libav中,以生成一个容器文件,然后将其流式传输到VLC等播放设备,或者(后来)流式传输到自己实现的显示. 到目前为止,我试用了GenICam示例代码,该示例代码将原始H.264数据传输到"sample.h264"文件中.我已经通过命令
..
当前,我正在使用libav *编码H.264视频.我想将KLVPackets添加到比特流,但不知道在哪里实现. avcodec中有一个结构,但是我不确定如何将其写到帧元数据中 typedef struct { UID key; int64_t offset; uint64_t length; } KLVPacket; 当前FFMPEG代码(仅左侧相关代码):
..
我正在开发一个使用FFmpeg播放音频/视频的C ++应用程序.现在,我想增强该应用程序,以允许用户从视频中提取音频. FFmpeg如何用于此目的?我对此进行了很多搜索,但找不到有关它的教程. 解决方案 您需要 打开输入上下文[avformat_open_input] 获取流信息[avformat_find_stream_info] 获取音频流: if (inputForm
..
我从手机上以人像模式拍摄了一个视频.这是有关视频的转储信息: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.MOV': Metadata: major_brand : qt minor_version : 0 compatible_brands: qt creation_time : 2017-05-04 02:21
..
我想用C编写一个快速程序,打开一个视频,将每一帧保存为ppm,并转储运动矢量.我所能找到的所有教程都来自大约十年前,并调用了不赞成使用或不存在的函数. 是否有任何优秀的在线资源,网站,视频或教科书都可以用一种现代的方式来做这些事情? 解决方案 我已经与ffmpeg和libav一起工作了几年,也没有发现最新的API级别的教程.有时,我只需要深入研究源代码以了解正在发生的事情以及如何使用
..