36得票2回答
使用libavcodec将原始H264帧放入mpegts容器

我十分期望能得到以下问题的帮助: 我有一款带摄像头的小工具,生成 H264 压缩视频帧,并将这些帧发送到我的应用程序中。这些帧不在容器中,只是原始数据。 我想使用 ffmpeg 和 libav 函数创建一个视频文件,以便以后使用。 如果我对这些帧进行解码和编码,一切都正常,我可以获得一个...

34得票3回答
使用libavformat在内存中读取文件

我目前正试图读取从服务器发送来的小视频文件。使用libavformat读取文件时,需要调用以下函数:av_open_input_file(&avFormatContext, "C:\\path\\to\\video.avi", 0, 0, 0); 问题在于此时文件不在磁盘上,而是在内存...

22得票1回答
FFMPEG:多路流混合,时长不同

我正在复用视频和音频流。视频流来自生成的图像数据,音频流来自aac文件。有些音频文件比我设置的总视频时间长,因此我的策略是当音频流复用器的时间大于总视频时间时停止它的复用(最后一个由编码视频帧控制)。我不会在这里放置整个安装代码,但它类似于最新FFMPEG存储库中的muxing.c示例。唯一的...

17得票4回答
使用FFmpeg libavformat记录RTSP流

我正在尝试使用FFmpeg libavformat记录来自Axis相机的RTSP流。我可以从文件中获取视频并将其保存到另一个文件,这很好。但是相机发送的数据很奇怪,帧率为100,相机每隔4帧发送一次,因此结果帧率约为25。但是libavformat设置了90000 fps(默认值?)的数据包d...

17得票3回答
FFmpeg中帧与包的区别

我正在尝试使用LibAV解码MPEG视频文件。有两个术语我无法很好地理解,即帧和数据包。 根据我的理解,帧是未经压缩的视频帧,数据包是经过压缩的帧。 问题: 一个数据包中可以有多个帧,对吗? 一个帧是否只能作为一个数据包的一部分?我指的是一半帧信息在packet1中,另一半在packet2中...

16得票1回答
使用libavformat将H.264混合到MP4中无法播放

我正在尝试将H.264数据混合到MP4文件中。保存H.264 Annex B数据到MP4文件时似乎没有错误,但文件无法播放。 我对文件进行了二进制比较,问题似乎出现在写入MP4文件的页脚(trailer)处。 我怀疑这可能与流的创建方式或其他方面有关。 初始化: AVOutputFor...

15得票5回答
C++ FFmpeg 创建 mp4 文件

我尝试使用FFmpeg和C++创建mp4视频文件,但结果是损坏的文件(Windows播放器显示“无法播放... 0xc00d36c4”)。 如果我创建.h264文件,则可以使用'ffplay'播放并通过CL成功转换为mp4。 我的代码:int main() { char *filen...

13得票1回答
解码MP3,然后增加音频音量,最后编码新的音频。

我希望首先解码一个MP3音频文件,然后增加音频的音量,然后再将其重新编码为新的MP3文件。 我想要使用libavformat或libavcodec来完成此操作。 你可以帮助我如何做到这一点吗?有任何示例吗?

13得票2回答
无法将PCM音频存储在.mp4容器文件中。

能否将pcm音频文件存储为.mp4文件? 我尝试使用ffmpeg命令“ffmpeg -i tempA.wav -acodec copy temp.mp4”,但无法将其存储在mp4容器文件中。 从'tempA.wav'导入#0,wav: 持续时间:00:01:36.51,比特...

12得票4回答
如何关闭libavformat的错误信息提示

默认情况下,libavformat会将错误消息写入stderr,例如: 从比特率估计持续时间,这可能不准确 我该如何关闭它?或更好的方法是将其导入到我的日志函数中? 编辑:重定向stderr到其他位置不可接受,因为我需要它作为其他日志记录目的,我只想让libavformat不写入它。