libavformat相关内容
是否可以将 pcm 音频文件存储到 .mp4 文件中? 我使用了 ffmpeg 命令“ffmpeg -i tempA.wav -acodec copy temp.mp4",但无法将其存储在 mp4 容器文件中. 输入 #0,wav,来自“tempA.wav": 时长:00:01:36.51,比特率:128 kb/s Stream #0.0:音频:pcm_s16le,8000 H
..
我已经从 CDN 下载了 flv 格式的视频(视频 H264 和音频 AAC)并将它们重新混合为 MP4 格式.但是视频有长度限制.所以我将每个视频分几个部分下载:从起点开始,在点 1,在点 2(通过在 url 中使用 seek 参数).每个点的开始都比前一个点的结束早一点. 使用 av_read_frame 我扫描了所有部分,发现相交的数据包不仅具有相同的大小和顺序,而且它们的 dts/pts
..
我正在尝试将 H.264 数据复用到 MP4 文件中.将此 H.264 Annex B 数据保存为 MP4 文件似乎没有错误,但该文件无法播放. 我对文件进行了二进制比较,问题似乎出在写入 MP4 文件页脚(预告片)的内容中. 我怀疑它必须与创建流的方式有关. 初始化: AVOutputFormat* fmt = av_guess_format( 0, "out.mp4", 0
..
我正在尝试使用 FFmpeg libavformat 录制来自安讯士相机的 RTSP 流.我可以从文件中抓取视频,然后将其保存到另一个文件中,这没问题.但是相机发送奇怪的数据,FPS 为 100,相机每 4 帧发送一次,因此结果 FPS 约为 25.但 libavformat 将数据包 dts/pts 设置为 90000 fps(默认?),新文件流具有 100fps.结果是一小时的视频,只有 10
..
我正在考虑重新混合一些包含音频和视频的容器,以便我提取最好的第一个音频流,并将其存储在一个新容器中,例如仅存在音频流. FFmpeg 的输出上下文是这样创建的: AVFormatContext* output_context = NULL;avformat_alloc_output_context2( &output_context, NULL, "mp4", NULL ); 我有一个可
..
我正在使用libavcodec将流编码为h264,并使用libavformat将其存储在mp4中.产生的容器具有无效的标头,可以在VLC中播放,但不能在任何其他播放器上播放. 我发现使用mp4容器和"mpeg4"编解码器会生成有效的mp4文件,但是使用libx265(HEVC)或libx264编解码器会生成无效的mp4. 我可以使用 ffmpeg -i invalid.mp4 -vco
..
我正在考虑重新混合一些容纳音频和视频的容器,以便提取最佳的第一个音频流,并将其存储在新的容器中,例如仅存在音频流. 创建FFmpeg的输出上下文如下: AVFormatContext * output_context = NULL;avformat_alloc_output_context2(& output_context,NULL,"mp4",NULL); 我有一个可接受的输出清
..
我尝试从原始H264视频数据创建片段MP4,以便可以在Internet浏览器的播放器中播放它.我的目标是创建实时流式传输系统,在该系统中,媒体服务器会将碎片化的MP4片段发送到浏览器.服务器将缓冲来自RaspberryPi摄像机的输入数据,该摄像机以H264帧的形式发送视频.然后,它将多路复用该视频数据并将其提供给客户端.浏览器将使用Media Source Extensions播放媒体数据(由服
..
我正在尝试使用FFmpeg和C ++创建mp4视频文件,但结果我收到了损坏的文件(Windows Player显示“无法播放... 0xc00d36c4").如果我创建.h264文件,则可以使用"ffplay"播放该文件,并通过CL成功将其转换为mp4. 我的代码: int main() { char *filename = "tmp.mp4"; AVOutputFor
..
运行 remuxing.c示例时遇到麻烦代码.我收到以下错误.我已经确认可以在/usr/local/include中找到文件.我正在运行macOS Sierra 10.12.6. $ cc -v playground/remuxing.c Apple LLVM version 9.0.0 (clang-900.0.39.2) Target: x86_64-apple-darwin16.7.0
..
如何阅读H264 SPS&使用libavformat API的PPS NAL字节? 我尝试从.mp4视频(编解码器为h264)文件中使用"av_read_frame(input_avFormatContext,& avPkt)" API将视频数据读取为"AVPacket"结构. 我将avPkt->数据转储到文件中.但是读取的第一帧是IDR帧. 使用"ffmpeg -i video
..
我正在尝试使用ffmpeg的libavformat和libavcodec将YUV420P图像(AV_PIX_FMT_YUV420P)转换为JPEG.到目前为止,这是我的代码: AVFormatContext* pFormatCtx; AVOutputFormat* fmt; AVStream* video_st; AVCodecContext* pCodecCtx; AVCodec* pCo
..
我正在尝试围绕libavformat构建一些视频阅读代码.在此处获取编译的DLL和.lib文件之后,我将构建我的代码和链接器即使我已链接到提供的.lib文件中,也找不到任何libavformat符号. 用dumpbin -headers检查libavformat.lib会发现它导出带有下划线前缀的所需功能.例如,当我想调用avformat_open_input时,.lib文件给出了_avfo
..
构建一个在linux下使用JavaFX媒体播放器的java 8(oracle)应用程序。需要MP3支持我发现我需要确保在系统上安装了libavformat53和libavcodec53。 现在即使它们已经安装在系统上,所有的相关内容都是.so文件链接在正确的位置。打开MP3时,JavaFX仍会崩溃。 为什么会出现这种情况的任何想法? 解决方案 研究 深入研究我发现的目标系
..
我想捕获视频,压缩和复制它作为一个mpeg2 ts。所有这些都是非常简单的ffmpeg库,但我想做的,而不是写入一个文件,捕获ts数据包在一个缓冲区,并以其他方式使用这个流。有没有一个简单的方法呢? 要将编码的帧写入文件,我使用av_interleaved_write_frame(oc,& pkt)。 OC是具有定义文件名和格式的输出上下文。 pkt是包含压缩帧的AVPacket。 av_i
..
我正在为Windows编写一个应用程序,捕获屏幕,并通过rtmp将流发送到Wowza服务器(for广播)。我的应用程序使用ffmpeg和Qt。 我使用WinApi捕获屏幕,将缓冲区转换为YUV444(因为它最简单)并按照decode_encoding.c(从FFmpeg示例)中所述编码帧: //////////////////////// //编码器初始化 ////////////
..
我正在使用来自IP摄像头的视频(H.264)和音频(AAC)进行一些集成工作。 我已经取得了一些进展我可以存储视频&音频流独立具有使用VLC播放器播放的能力。 H.264正在以附件B格式存储,音频使用格式为格式的文件。 我现在正在尝试将流复制到MP4文件中,而无需做任何解码或编码,但到目前为止还没有找到答案。 我可以使用ffmpeg手动执行此操作: ffmpeg -i reco
..
我正在尝试将所有流从多个文件复制到一个文件中,而无需转码流。你通常使用 ffmpeg 实用程序通过 ffmpeg -i“file_with_audio.mp4”-i“file_with_video.mp4”-c copy -shortest file_with_audio_and_video.mp4 这是代码: int ffmpegOpenInputFile(const char *
..
我想首先解码一个MP3音频文件,然后增加音频的音量,然后再次将其编码成一个新的MP3文件。我想为此使用libavformat或libavcodec。你能帮我一下吗任何一个例子? 解决方案 您可以使用“-filter”参数与“volume”选项来设置一个“ 为音频。更多信息: http://ffmpeg.org/ffmpeg-filters.html#volume 由于您只处理MP3文
..
在标志中解码包含AV_PKT_FLAG_KEY的数据包之后, 我期望得到I帧,而是获得了P帧: 之后调用: avcodec_decode_video2(codecCtx,frame,& frameFinished,& packet); // mpeg2 video 我打印出以下作为理智检查: printf(“packet flags:%d picture
..