libavcodec相关内容
我试图让 av_seek_frame() 函数转到我指定的字节位置.我正在为我的应用程序实现帧精确搜索机制,按照我的看法,我将扫描整个视频文件,并将每个关键帧的字节位置存储在一个结构中.我找到了获取当前字节位置的位置:AVPacket.pos.我现在用 av_seek_frame 测试这个位置,如下所示: av_seek_frame( pFormatCtx, videoStream, 11028
..
我想将 YUV420P 图像(从 H.264 流接收)转换为 RGB,同时使用 调整其大小sws_scale. 原图大小为480 × 800.只需使用相同尺寸进行转换即可. 但是当我尝试改变尺寸时,我得到一个扭曲的图像,具有以下模式: 更改为 481 × 800 会产生扭曲的黑白图像,看起来像是从中间切掉了 482 × 800 会更失真 483 × 800 失真但有颜色 484 ×
..
我正在使用 libavcodec(截至 10 年 3 月 3 日的最新 git)将原始 pcm 编码为 aac(已启用 libfaac 支持).我通过调用 avcodec_encode_audio 来做到这一点每次重复使用 codec_context->frame_size 样本.前四个调用成功返回,但第五个调用永远不会返回.当我使用 gdb中断,堆栈已损坏. 如果我使用 audacity
..
从 wiki,我读到了 FFmpeg 是一个生成库和程序的免费软件项目用于处理多媒体数据.FFmpeg 最值得注意的部分是libavcodec,其他几个使用的音频/视频编解码器库项目,libavformat,一个音频/视频容器复用和解复用库,以及用于转码多媒体文件的 ffmpeg 命令行程序. 那么 ffmpeg 是 avcodec 的包装器吗?而且我经常听到人们使用 ffmpeg 用
..
我收到一个 h264 流,其中我至少知道一帧的大小.流是正确的,因为我可以将它存储在一个文件中并使用 vlc 播放.播放文件对我来说没有问题,因为我包含了 libavformat.但是 libavformat 给了我一个 AVPacket,我可以直接将其提供给 avcodec_decode_video2.在这种情况下,我得到了一个字节流.如何将原始 h264 流提供给 avcodec_decode
..
我想为我正在编写的程序添加视频转换功能.FFmpeg 用于执行此操作的命令行界面只是 ffmpeg -i InputFile OutputFile,但是有没有办法将其用作库,因此我可以执行类似 ffmpeg_convert(InputFile, OutputFile)? 我希望我不必直接使用 libavcodec,因为我想它会比在格式之间转换的单行函数复杂得多.如果 FFmpeg 不能轻易改
..
我正在考虑重新混合一些包含音频和视频的容器,以便我提取最好的第一个音频流,并将其存储在一个新容器中,例如仅存在音频流. 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
..
我正在使用通过avcodec解码的RTSP上具有H.264流的摄像机.对于大多数相机,接收到的每个数据包(NAL单元)代表一个完整的帧(I帧或帧),当我对其进行解码时,每次都会获得一个帧.但是对于另一台摄像机,一帧被分成许多大小不变的NAL单元,当我解码每个数据包时,我没有每个数据包的帧. 我看到NAL单元中有一个开始和结束标志.除了PPS或SPS,永远不会设置结束标志.不过,我可以检测到开
..
在FFMPEG的GitHub上,我使用 encode_video.c 生成1秒的视频.这是有问题的示例: https://github.com/FFmpeg/FFmpeg/blob/master/doc/examples/encode_video.c 我使用以下代码进行编译: gcc -Wall -o ffencode encode_video.c -lavcodec -lavutil -l
..
我正在尝试确定某个用户上传的文件是否是视频文件. 我首先尝试了ffprobe, #一个png文件从''输入#0,png_pipe:持续时间:不适用,比特率:不适用数据流#0:0:视频:png,rgba(pc),920x2094 [SAR 4724:4724 DAR 460:1047],25 tbr,25 tbn,25 tbc#文本文件从''输入#0 tty:持续
..
我正在使用libavcodec将流编码为h264,并使用libavformat将其存储在mp4中.产生的容器具有无效的标头,可以在VLC中播放,但不能在任何其他播放器上播放. 我发现使用mp4容器和"mpeg4"编解码器会生成有效的mp4文件,但是使用libx265(HEVC)或libx264编解码器会生成无效的mp4. 我可以使用 ffmpeg -i invalid.mp4 -vco
..
我知道它会复制某些内容,但它会做什么(它会影响输出文件的扩展程度)?是开关还是选件?为什么在单词本身之前没有连字符? 我从其他问题中看到,它可以复制不进行转码的流,但是什么是还有其他我可以操纵的可能性? 我已经完成了 ffmpeg --help ,但是我没有看到任何有关它的文档.是否有一个我可以阅读更多有关该网站的网站? 解决方案 copy 既不是开关也不是选项.这是可以为编解
..
我的问题很快得到解释:我必须使用FFmpeg(原始PCM到G.711 mu-law)对音频样本进行编码.这是我代码的罪魁祸首部分(在此示例中,我将原始参数进行了明确说明): AVFrame * frame = av_frame_alloc();frame-> nb_samples = 8000;frame-> format = AV_SAMPLE_FMT_S16;frame-> channel
..
我正在考虑重新混合一些容纳音频和视频的容器,以便提取最佳的第一个音频流,并将其存储在新的容器中,例如仅存在音频流. 创建FFmpeg的输出上下文如下: AVFormatContext * output_context = NULL;avformat_alloc_output_context2(& output_context,NULL,"mp4",NULL); 我有一个可接受的输出清
..
我正在尝试使用libavcodec解码作品.我可以单独使用libopus库来做到这一点.但是我正在尝试使用libavcodec达到相同的效果.我试图弄清楚为什么它在我的情况下不起作用.我有一个rtp流,并尝试对其进行解码.解码包中的结果与输入相同.解码后的帧通常包含pcm值,而不是实际发送的Im正在接收的Opus帧.请帮助我. av_register_all(); avcodec_regis
..
我从手机上以人像模式拍摄了一个视频.这是有关视频的转储信息: 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 ++中的ffmpeg访问网络摄像头的示例或教程.任何使我了解一些文档的示例代码或帮助,都将不胜感激. 谢谢. 解决方案 对于Windows,请使用dshow 对于Linux(如ubuntu),请使用Video4Linux(V4L2). FFmpeg可以从V4l2接收输入并可以执行此过程. 要查找USB视频路径类型:ls/dev/vi
..
我正在使用来自zeranoe.com的开发版本,该版本中包含OpenH264和libx264. 如何在这两个解码器之间进行选择以比较解码速度? avcodec_find_decoder(AVCodecID.AV_CODEC_ID_H264); 只给我起了名字"h264" 但是它是哪个解码器? 并尝试强制特定的解码器失败,例如: codec = avcodec_find_de
..
我正在尝试使用FFmpeg和C ++创建mp4视频文件,但结果我收到了损坏的文件(Windows Player显示“无法播放... 0xc00d36c4").如果我创建.h264文件,则可以使用"ffplay"播放该文件,并通过CL成功将其转换为mp4. 我的代码: int main() { char *filename = "tmp.mp4"; AVOutputFor
..