问题标签 [libavformat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1955 浏览

ffmpeg - avcodec_find_decoder(CODEC_ID_MPEG2TS) 始终为 NULL

我想解码传入的 MPEG2 传输流,然后将其编码为 h264。h264 编解码器一切正常,但问题是 libavcodec 似乎无法识别 MPEG2-Transportstream。我基本上是在模仿官方的例子:

http://ffmpeg.org/doxygen/trunk/decoding__encoding_8c-source.html

ptrCodec 始终为 NULL。有人可以帮我吗?

0 投票
0 回答
1011 浏览

c - 使用 libavformat 抓取 rtsp/rtp 流

世界。我正在尝试从 IP 摄像机(实时)中获取 rtsp mjpeg 流,如http://www.inb.uni-luebeck.de/~boehme/using_libavcodec.html中所述,但已移植到较新版本。它适用于 mpeg 文件(将其作为一个 AVPacket 完整加载),但使用流时,avcodec_decode_video2 返回 -1(错误)。在这种情况下,AVPacket 是帧的一部分。

我怎样才能解决这个问题?

0 投票
1 回答
1616 浏览

libavcodec - 使用 libavcodec 打开 Live Input 的快速方法

我目前正在使用来自 Hauppauge WinTV950Q 的实时视频输入,它为我提供了实时视频输入。

我正在使用libav*andQt库并C/C++在 Linux 上编程。我使用推荐avcodec_open_input()的打开和处理(转码)输入以在移动设备上使用。我希望能够在我的移动设备上观看电视,并且能够远程切换频道。到目前为止一切正常。

我唯一的问题是打开输入需要 5 到 20 秒。这对于我的用例来说会变慢,我可以接受 1-3 秒之间的延迟。我以前用于第一次测试的 v4l2-API 实际上设法获得 1-3 秒之间的切换时间,但我不能使用它,因为我需要进行一些转码,以便可以在移动设备上使用视频数据。

有没有办法提高avformat_open_input()通话的开放时间?也许在打开输入之前需要设置库中的一些全局变量?

这是相关的代码:

这是输出:

0 投票
1 回答
757 浏览

ffmpeg - ffmpeg 元数据

我正在使用 libavformat(即 C 库)将 MPEG4/H264 编码为 mp4 文件我想在 MP4 文件中添加一些元数据,例如日期/时间。有人可以告诉我如何做到这一点吗?

谢谢。

0 投票
4 回答
36803 浏览

c - 使用 FFmpeg libavformat 录制 RTSP 流

我正在尝试使用 FFmpeg libavformat 记录来自 Axis 摄像机的 RTSP 流。我可以从文件中抓取视频,然后将其保存到另一个文件中,这没关系。但是相机发送奇怪的数据,FPS 为 100,相机每 4 帧发送一次,因此结果 FPS 约为 25。但 libavformat 将数据包 dts/pts 设置为 90000 fps(默认?),新文件流有 100fps。结果是一小时的视频,只有 100 帧。

这是我的代码

结果文件在这里:http ://dl.dropbox.com/u/1243577/test.avi

感谢您的任何建议

0 投票
1 回答
4743 浏览

c - 错误:制作 m3u8-segmenter 时未声明“CODEC_TYPE_AUDIO”

我想为 Http Live Stream 制作 m3u8-segmenter:https ://github.com/johnf/m3u8-segmenter

我做的时候有错误,错误是:

0 投票
3 回答
18896 浏览

c++ - 使用 libavformat 读取位于内存中的文件

我目前正在尝试读取从服务器发送的小视频文件

为了使用 libavformat 读取文件,您应该调用

问题是在这种情况下文件不在磁盘上,而是在内存中。

我目前正在做的是下载文件,使用临时名称将其写入磁盘,然后av_open_input_file使用临时文件名进行调用,这不是一个非常干净的解决方案。

事实上,我想要的是一个类似的功能,av_open_custom(&avFormatContext, &myReadFunction, &mySeekFunction);但我在文档中没有找到任何功能。我想这在技术上是可行的,因为文件名不能帮助库确定它使用的格式。

那么有没有这样的函数,或者 av_open_input_file 的替代方法?

0 投票
1 回答
2564 浏览

encoding - 使用 libavcodec (FFMpeg) 编码 Speex?

我成功编译了启用speex的libavcodec。我修改了 FFMPEG 文档中的示例,将示例音频编码为 Speex。但结果文件无法使用 VLC Player(具有 Speex 解码器)播放。

有小费吗?

0 投票
1 回答
12765 浏览

c++ - 使用 libavcodec 解码音频并使用 libAO 播放?

我使用以下代码片段来解码音频文件(用 MP3、WAV、WMV 测试)。

但是当它播放音频时,它只会发出静态声音并时不时地崩溃。关于我在这里做错了什么的任何提示?

0 投票
1 回答
852 浏览

c - 通过 RTP 流式传输 H264 视频 + Speex 音频?

在我的应用程序中,我成功地使用 libavcodec 编码/解码 H264 视频和 Speex 音频,并使用 libavformat 保存在 MKV 容器中。

现在,我不想创建容器文件,而是想通过我们的本地网络流式传输音频和视频。

我看到 RTP 是执行此操作的标准化方式。

根据 libavformat 源代码,它不支持带有 RTP 的 Speex。

关于通过 LAN 流式传输 H264/Speex 的任何其他建议?

在 libavformat RTP 中实现 Speex 支持之前,我应该阅读哪些内容?