- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将实时渲染的视频数据和现有的 .wav 文件编码为 mpg 文件。
为此,我首先编写所有音频帧,然后是来自渲染引擎的视频帧。对于较小的 .wav 文件(< 25 秒),一切正常。但是,一旦我使用更长的 .wav 文件,av_write_frame(在写入音频帧时)在写入大约 100 帧后就会返回 -1。它永远不是失败的同一帧,也永远不是最后一帧。
我测试过的任何播放器都可以完美播放所有测试文件。
我关注 the muxing example (或多或少)。
这是我编写音频帧的函数:
void write_audio_frame( Cffmpeg_dll * ptr, AVFormatContext *oc, AVStream *st, int16_t sample_val )
{
AVCodecContext *c;
AVPacket pkt = { 0 }; // data and size must be 0;
AVFrame *frame = avcodec_alloc_frame();
int got_packet;
av_init_packet(&pkt);
c = st->codec;
get_audio_frame(ptr, ptr->samples, ptr->audio_input_frame_size, c->channels);
frame->nb_samples = ptr->audio_input_frame_size;
int result = avcodec_fill_audio_frame(frame, c->channels, c->sample_fmt,
(uint8_t *) ptr->samples,
ptr->audio_input_frame_size *
av_get_bytes_per_sample(c->sample_fmt) *
c->channels, 0);
if (result != 0)
{
av_log(c, AV_LOG_ERROR, "Error filling audio frame. Code: %i\n", result);
exit(1);
}
result = avcodec_encode_audio2(c, &pkt, frame, &got_packet);
if (result != 0)
{
av_log(c, AV_LOG_ERROR, "Error encoding audio. Code: %i\n", result);
exit(1);
}
if (c->coded_frame && c->coded_frame->pts != AV_NOPTS_VALUE)
pkt.pts= av_rescale_q(c->coded_frame->pts, c->time_base, st->time_base);
pkt.flags |= AV_PKT_FLAG_KEY;
pkt.stream_index= st->index;
av_log(c, AV_LOG_ERROR, "Got? %i Pts: %i Dts: %i Flags: %i Side Elems: %i Size: %i\n",
got_packet, pkt.pts, pkt.dts, pkt.flags, pkt.side_data_elems, pkt.size);
/* write the compressed frame in the media file */
result = av_write_frame(oc, &pkt);
if (result != 0)
{
av_log(c, AV_LOG_ERROR, "Error while writing audio frame. Result: %i\n", result);
exit(1);
}
}
void get_audio_frame( Cffmpeg_dll* ptr, int16_t* samples, int frame_size, int nb_channels, int16_t sample_val )
{
fread( samples, sizeof( int16_t ), frame_size * nb_channels, ptr->fp_sound_input );
};
while (!feof(ptr->fp_sound_input))
{
write_audio_frame( ptr, ptr->oc, ptr->audio_st, -1 );
}
最佳答案
尝试使用 av_interleaved_write_frame
而不是 av_write_frame
关于audio - 将较大的音频文件编码为 .mpg 时,av_write_frame 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13531848/
我有一个带有两个音频流的 MPG 文件 (mpeg2)。 我只想在不重新编码或质量损失的情况下删除其中一个音频流。 这是我的命令(我不映射要删除的音频): ffmpeg -i input.MPG -m
这个问题在这里已经有了答案: Extract a dplyr tbl column as a vector (8 个答案) 关闭 2 年前。 mtcars %>% select(mpg) %>% c
我已经完成了简单 MPG 的大部分代码计算器。我现在的主要问题是在程序结束时我需要它来计算用户决定输入的所有里程的平均 MPG。 我得到了一些数字,但它不是正确的。如果你能向我请求你的知识,那就太棒了
我想在 PHP 页面上播放视频 (AVI/MPG)。我怎样才能做到这一点?我还想为每个视频生成缩略图。谁能推荐一些工具? 最佳答案 对于缩略图,您需要类似 ffmpeg安装在您的服务器上。 要播放视频
我有一个有趣的问题... 我使用 FFMPEG 创建了多个 mpg 文件(共 5 个)。文件完成后,长度为 30 秒,我是故意这样做的。 我的问题是,当我 cat *.mpg >> final.mpg
我从工作中流式传输培训视频,但没有很好的连接并且获得大量缓冲。我已将 PC 屏幕上的流式视频捕获到 mpg 文件中。幸运的是,当视频缓冲时,它会在屏幕中央显示一个特征缓冲图标,并且没有声音。使用 ff
好的。我有一个运行此命令的类: ffmpeg_command = "ffprobe -v quiet -print_format json -show_format -show_streams %s"
我正在使用 php 函数 finfo_file 来确定 mimetype,它一直将 .mpg 文件报告为 application/octet-stream 而不是 video/mpeg。 我正在使用
我正在尝试制作一个 MPG 计算器,这里是测试用例和预期结果: 我的测试员: Car auto = new Car(15); System.out.println("New car o
我想将 mpg(兼容 DVD 的 mpeg2)电影文件嵌入到我的网页中。我没有机会将这些视频转换为任何其他格式。此网站仅供个人使用,因此任何类型的解决方案都是完美的。 非常感谢任何建议或解决方案。 这
为了加入一些视频剪辑(720x480 [SAR 8:9 DAR 4:3])并在每个视频之间留出两秒钟的空白,我尝试通过代码制作一个空白剪辑 ffmpeg -t 2 -s 720x480 -f rawv
我想记录我的电脑屏幕(在我的 Windows 机器上使用 gdigrab)并将保存的视频文件作为 mp4 或 mpg 文件存储在我的磁盘上。我找到了一个示例代码,它可以抓取屏幕并将其显示在SDL 窗口
我有一个需要转换为 mpg 的 mp4 视频(适用于 windows PowerPoint2010) 我一直在努力获得最好的质量。但我不断收到错误: [mpeg @ 0x2523620] buffer
我正在做一个项目,必须使用Aes128(Rijndael)方法播放加密文件!并且不应该一开始就完全解密文件并全部播放。我必须解密并即时播放 512 字节 block 的文件。 如何使用 vitamio
我有 100 个培训、讲座、指南视频文件,每个文件的大小为 30MB 到 1GB。而且都是.mp4/mpg格式。我发现没有网络播放器可以在内联 html 中播放它。 这就是我现在正在做的让他们下载它。
以下简单类不播放视频 URL。我得到的是一个黑色的空屏幕。为什么? import Foundation import AVKit import AVFoundation class EditShowV
我想在嵌入的 mpeg 视频上放置一个透明按钮? 我可以定位按钮,但是当页面加载时,按钮似乎在电影。 这适用于 Mac Safari 和 Firefox,但不适用于 IE 或 PC Firefox。
我有以下代码库 Audiosource.onloadeddata = function () { $("#txtAudioDuration").val(Math.round(
有没有一种方法可以在视频的特定点(例如 5 秒或第 25 帧)从视频文件(mpg、wmv、flv 等)中捕获单个帧?然后保存为图片? [编辑]YouTube 做的一些链接。不能全部手动完成吗? ;)
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为
我是一名优秀的程序员,十分优秀!