libavcodec相关内容

问题:FFMPEG 使用 av_seek_frame 使用字节位置进行搜索

我试图让 av_seek_frame() 函数转到我指定的字节位置.我正在为我的应用程序实现帧精确搜索机制,按照我的看法,我将扫描整个视频文件,并将每个关键帧的字节位置存储在一个结构中.我找到了获取当前字节位置的位置:AVPacket.pos.我现在用 av_seek_frame 测试这个位置,如下所示: av_seek_frame( pFormatCtx, videoStream, 11028 ..
发布时间:2021-12-26 19:24:53 C/C++开发

sws_scale YUV -->RGB 失真图像

我想将 YUV420P 图像(从 H.264 流接收)转换为 RGB,同时使用 调整其大小sws_scale. 原图大小为480 × 800.只需使用相同尺寸进行转换即可. 但是当我尝试改变尺寸时,我得到一个扭曲的图像,具有以下模式: 更改为 481 × 800 会产生扭曲的黑白图像,看起来像是从中间切掉了 482 × 800 会更失真 483 × 800 失真但有颜色 484 × ..
发布时间:2021-12-26 19:08:13 C/C++开发

使用 libavcodec 将音频编码为 aac

我正在使用 libavcodec(截至 10 年 3 月 3 日的最新 git)将原始 pcm 编码为 aac(已启用 libfaac 支持).我通过调用 avcodec_encode_audio 来做到这一点每次重复使用 codec_context->frame_size 样本.前四个调用成功返回,但第五个调用永远不会返回.当我使用 gdb中断,堆栈已损坏. 如果我使用 audacity ..
发布时间:2021-12-26 19:06:09 其他开发

什么是 ffmpeg、avcodec、x264?

从 wiki,我读到了 FFmpeg 是一个生成库和程序的免费软件项目用于处理多媒体数据.FFmpeg 最值得注意的部分是libavcodec,其他几个使用的音频/视频编解码器库项目,libavformat,一个音频/视频容器复用和解复用库,以及用于转码多媒体文件的 ffmpeg 命令行程序. 那么 ffmpeg 是 avcodec 的包装器吗?而且我经常听到人们使用 ffmpeg 用 ..
发布时间:2021-12-26 19:04:18 其他开发

FFmpeg 使用 avcodec_decode_video2 解码原始缓冲区

我收到一个 h264 流,其中我至少知道一帧的大小.流是正确的,因为我可以将它存储在一个文件中并使用 vlc 播放.播放文件对我来说没有问题,因为我包含了 libavformat.但是 libavformat 给了我一个 AVPacket,我可以直接将其提供给 avcodec_decode_video2.在这种情况下,我得到了一个字节流.如何将原始 h264 流提供给 avcodec_decode ..
发布时间:2021-12-26 18:56:41 C/C++开发

FFmpeg 可以用作库而不是独立程序吗?

我想为我正在编写的程序添加视频转换功能.FFmpeg 用于执行此操作的命令行界面只是 ffmpeg -i InputFile OutputFile,但是有没有办法将其用作库,因此我可以执行类似 ffmpeg_convert(InputFile, OutputFile)? 我希望我不必直接使用 libavcodec,因为我想它会比在格式之间转换的单行函数复杂得多.如果 FFmpeg 不能轻易改 ..
发布时间:2021-12-26 18:44:00 其他开发

如何确定编解码器/容器组合是否与 FFmpeg 兼容?

我正在考虑重新混合一些包含音频和视频的容器,以便我提取最好的第一个音频流,并将其存储在一个新容器中,例如仅存在音频流. FFmpeg 的输出上下文是这样创建的: AVFormatContext* output_context = NULL;avformat_alloc_output_context2( &output_context, NULL, "mp4", NULL ); 我有一个可 ..
发布时间:2021-12-20 23:55:27 其他开发

ffmpeg、libav、avconv有什么异同?

当我在 Ubuntu 上运行 ffmpeg 时,它显示: $ ffmpegffmpeg 版本 v0.8,版权所有 (c) 2000-2011 Libav 开发者建于 2012 年 2 月 28 日 13:27:36,使用 gcc 4.6.1该程序不再开发,仅用于兼容性.请改用 avconv(有关不兼容更改的列表,请参阅更改日志). 或者显示(取决于 Ubuntu 版本): $ ffmpegf ..
发布时间:2021-11-30 15:54:33 其他开发

如何知道H.264流中代表图片的NAL单元数

我正在使用通过avcodec解码的RTSP上具有H.264流的摄像机.对于大多数相机,接收到的每个数据包(NAL单元)代表一个完整的帧(I帧或帧),当我对其进行解码时,每次都会获得一个帧.但是对于另一台摄像机,一帧被分成许多大小不变的NAL单元,当我解码每个数据包时,我没有每个数据包的帧. 我看到NAL单元中有一个开始和结束标志.除了PPS或SPS,永远不会设置结束标志.不过,我可以检测到开 ..
发布时间:2021-05-13 20:11:36 C/C++开发

我怎么知道某个文件是视频文件?

我正在尝试确定某个用户上传的文件是否是视频文件. 我首先尝试了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:持续 ..
发布时间:2021-05-06 20:49:00 其他开发

libavformat/libavcodec提供了无效的容器头

我正在使用libavcodec将流编码为h264,并使用libavformat将其存储在mp4中.产生的容器具有无效的标头,可以在VLC中播放,但不能在任何其他播放器上播放. 我发现使用mp4容器和"mpeg4"编解码器会生成有效的mp4文件,但是使用libx265(HEVC)或libx264编解码器会生成无效的mp4. 我可以使用 ffmpeg -i invalid.mp4 -vco ..
发布时间:2021-05-06 20:42:52 其他开发

什么是“复制"?在ffmpeg命令行中做什么?

我知道它会复制某些内容,但它会做什么(它会影响输出文件的扩展程度)?是开关还是选件?为什么在单词本身之前没有连字符? 我从其他问题中看到,它可以复制不进行转码的流,但是什么是还有其他我可以操纵的可能性? 我已经完成了 ffmpeg --help ,但是我没有看到任何有关它的文档.是否有一个我可以阅读更多有关该网站的网站? 解决方案 copy 既不是开关也不是选项.这是可以为编解 ..
发布时间:2021-05-06 20:42:11 其他开发

如何确定编解码器/容器组合是否与FFmpeg兼容?

我正在考虑重新混合一些容纳音频和视频的容器,以便提取最佳的第一个音频流,并将其存储在新的容器中,例如仅存在音频流. 创建FFmpeg的输出上下文如下: AVFormatContext * output_context = NULL;avformat_alloc_output_context2(& output_context,NULL,"mp4",NULL); 我有一个可接受的输出清 ..
发布时间:2021-04-12 19:31:03 其他开发

使用FFmpeg的libavcodec解码作品

我正在尝试使用libavcodec解码作品.我可以单独使用libopus库来做到这一点.但是我正在尝试使用libavcodec达到相同的效果.我试图弄清楚为什么它在我的情况下不起作用.我有一个rtp流,并尝试对其进行解码.解码包中的结果与输入相同.解码后的帧通常包含pcm值,而不是实际发送的Im正在接收的Opus帧.请帮助我. av_register_all(); avcodec_regis ..
发布时间:2020-11-04 02:48:44 其他开发

带有C ++的FFMPEG访问网络摄像头

我到处搜索,找不到关于如何使用C ++中的ffmpeg访问网络摄像头的示例或教程.任何使我了解一些文档的示例代码或帮助,都将不胜感激. 谢谢. 解决方案 对于Windows,请使用dshow 对于Linux(如ubuntu),请使用Video4Linux(V4L2). FFmpeg可以从V4l2接收输入并可以执行此过程. 要查找USB视频路径类型:ls/dev/vi ..
发布时间:2020-11-04 02:27:08 C/C++开发

如何在openH264和x264解码器之间进行选择

我正在使用来自zeranoe.com的开发版本,该版本中包含OpenH264和libx264. 如何在这两个解码器之间进行选择以比较解码速度? avcodec_find_decoder(AVCodecID.AV_CODEC_ID_H264); 只给我起了名字"h264" 但是它是哪个解码器? 并尝试强制特定的解码器失败,例如: codec = avcodec_find_de ..
发布时间:2020-11-04 02:23:01 其他开发

C ++ FFmpeg创建mp4文件

我正在尝试使用FFmpeg和C ++创建mp4视频文件,但结果我收到了损坏的文件(Windows Player显示“无法播放... 0xc00d36c4").如果我创建.h264文件,则可以使用"ffplay"播放该文件,并通过CL成功将其转换为mp4. 我的代码: int main() { char *filename = "tmp.mp4"; AVOutputFor ..
发布时间:2020-11-04 02:16:19 C/C++开发