- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将视频数据包从视频流写入缓冲区。然后我尝试将它们写入文件。
av_init_packet( &pkt );
int bufer_size=250;
while ( av_read_frame( ifcx, &pkt ) >= 0 && start_flag==0 && stop_flag==0){
printf("reading packet - %i \n", pkg_index);
if ( pkt.stream_index == i_index ) {
pkt.stream_index = ost->id;
pkt.pts = av_rescale_q_rnd(pkt.pts, ist->time_base, ost->time_base, AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
pkt.dts = av_rescale_q_rnd(pkt.dts, ist->time_base, ost->time_base, AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
pkt.duration = av_rescale_q(pkt.duration, ist->time_base, ost->time_base);
pkt.pos = -1;
av_copy_packet(&pkt_arr[pkg_index],&pkt);
}
av_free_packet( &pkt );
av_init_packet( &pkt );
pkg_index++;
if(pkg_index>=bufer_size){
int ret = avformat_write_header(ofcx, NULL);
av_dump_format( ofcx, 0, ofcx->filename, 1 );
int i;
int start_frame=0;
for(i=start_frame; i<bufer_size; i++){
av_interleaved_write_frame( ofcx, &pkt_arr[i] );
}
av_write_trailer( ofcx );
avio_close( ofcx->pb );
printf("END \n");
return 0;
}
}
现在的问题是:如果 start_frame=0 一切正常,我有 10 秒的视频文件。但是,如果结果中 start_frame=125(例如),我的视频文件包含 5 秒卡住图片和 5 秒视频。
出了什么问题?
最后我也有错误:
[avi @ 0x287a9f0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 6 >= 1
[avi @ 0x287a9f0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 6 >= 2
[avi @ 0x287a9f0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 6 >= 3
[avi @ 0x287a9f0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 6 >= 4
[avi @ 0x287a9f0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 6 >= 5
[avi @ 0x287a9f0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 6 >= 6
也许你知道那是什么。
最佳答案
它有点说你必须重新调整数据包 pts/dts 以实现 +125 帧变化。尝试在 av_interleaved_write_frame
之前重新标记 pts/dts。对于pts
,这个简单的公式可能适用pkt.pts = frame_count * pkt.duration
。 dts
更复杂,但为了测试目的,请尝试 pkt.dts = pkt.pts
。希望有帮助。
关于c - C 上的 avcodec,卡住图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47741259/
我一直在尝试从格式 SubRip 转码字幕(.srt) 到 MPEG4 Timed Text将它们混合到一个 MP4 容器中,其中已经有音频和视频。使用 ffmpeg 从命令行执行此操作微不足道: f
我正在尝试在 FFMPEG 库中构建示例代码 我在我的项目中添加 libavcode.h , libavcode.a 并将标题搜索 usr/local/include 和库搜索设置为 usr/loca
我需要知道如何使用 avcodec/avformat 查找视频文件中的总帧数。 我有一个项目,我从使用 ffmpeg 库解码视频流的其他人那里获得。我需要改进一些功能来逐帧搜索,所以我的第一个任务是简
我正在尝试使用 libav 将 MP4 文件转换为 MP3 文件。基本上想达到什么ffmpeg -i filename.mp4 filename.mp3做。我找到了 this官方例子。但是当我使用输入
我一直在到处寻找一个选项来强制 avcodec 为其 AVFrame 数据使用未对齐的内存。 根据像素格式,AVFrame->data 的水平面可能会填充额外的数据以与内存对齐以提高性能。 例如:每个
我在解码 HEVC 时遇到问题使用 avcodec 编码的视频。 修改源代码的一行允许解码mpeg1这不是我需要的。 谢谢 #include #include #include #include
我从这个站点下载了控制 AR Drone 的项目: https://github.com/Ruslan-B/AR.Drone 这个项目很旧。然后我从这个站点下载了 ffmpeg.autogen 库 h
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
我将视频数据包从视频流写入缓冲区。然后我尝试将它们写入文件。 av_init_packet( &pkt ); int bufer_size=250;
我正在使用 avcodec 在 linux 上解码一些 hevc 剪辑,avcodec 库是从源包 ffmpeg-4.3.1 构建的,带有命令: configure --prefix=/mnt/pro
我正在使用带有 avcodec 的 OPUS 对声音进行编码并使用我自己的协议(protocol)对其进行流式传输。 到目前为止,它适用于 MP2 编解码器,但是当我切换到 OPUS 时,我遇到了这个
我注意到对于某些视频文件,AVPacket 结构中返回的 PTS 时间戳不是从 0 开始,而是在一段时间后。例如。在 3.128 左右。我测试的 99% 的视频文件都有从 0 开始的 PTS 时间戳,
我正在使用 AVCodec 作为视频流解码器,想知道是否可以通过 FFMPEG 将硬件加速与 hwaccel 一起使用?还是已经默认使用了?我已经列出了可用的编解码器,但我不明白如何在我的代码中实现它
今天在CodeBlocks中运行ffmpeg示例c程序,报错: invalid conversion from int to avcodecid[-fpermissive] 我把部分代码放在这里: s
我正在尝试编写一个应用程序来获取输入视频并将其裁剪为方形视频并忽略音频流。因为如果使用命令性能不佳,我正在尝试使用 libavcodec 和 libavformat 来完成它。但是输出不能被任何视频播
我正在尝试使用 gcc 执行 tutorial01.c,我在同一个文件夹中有 gcc 和 tutorial01.c 以及 libavcodec 和 libavformat 及其相关文件,它给了我这个错
我已经安装了ffmpeg-devel使用 dnf,但包含 "libavcodec/avcodec.h" , g++ 告诉我 a.cpp:1:10: fatal error: libavcodec/av
我正在使用这个项目https://github.com/apc-llc/moviemaker-cpp 我想知道如何在我的视频上设置固定帧率 现在,当我输入 30FPS 作为 c->framerate
我正在使用 C/C++ 中的 FFMpeg 库开发媒体播放器。 This source使用以下代码查找文件中视频流的解码器: pCodec=avcodec_find_decoder(pCodecCtx
我尝试在我的ubuntu1604平台上调试ffmpeg,但它总是说找不到头文件,但实际上我确实在编译代码中包含了头文件。 错误信息如下: error message 这是我的测试代码: #inclu
我是一名优秀的程序员,十分优秀!