Tag: libav

使用libav转换mp4-ts

我正在尝试使用libav将mp4文件转换为mpegts。 代码有效,但输出的文件无法由任何播放器播放。 这是输入文件 (它只是video,没有音频) 这是我到目前为止的代码: int convert(const char *input, const char *output) { AVFormatContext *inputContext = NULL; AVFormatContext *outputContext = NULL; AVCodecContext *input_codec_context = NULL; AVCodecContext *output_codec_context = NULL; AVCodec *output_codec = NULL; AVCodec *input_codec = NULL; AVStream *stream = NULL; AVIOContext *avioContext = NULL; av_register_all(); avformat_network_init(); avformat_alloc_output_context2(&outputContext, NULL, “mpegts”, output); avio_open(&avioContext, output, AVIO_FLAG_WRITE); outputContext->pb […]

我在哪里可以找到libav,ffmpeg等的现代教程?

我想在C中制作一个快速程序,它将打开一个video,将每个帧保存为ppm,并转储运动矢量。 我能找到的所有教程都是差不多十年前的,并且调用了已弃用或不存在的函数。 是否有任何良好的在线资源,网站,video或教科书涵盖了做这类事情的现代方法?

如何用libavcodec / x264编码h.264?

我试图使用libavcodec / libavformat编码video。 音频效果很好,但当我尝试编码video时,我收到以下错误: [libx264 @ 0x10182a000]broken ffmpeg default settings detected [libx264 @ 0x10182a000]use an encoding preset (vpre) 使用命令行ffmpeg很容易修复,但我试图在C中执行此操作。我的选项是 AVStream *pVideoOutStream = av_new_stream(pOutFormatCtx, 0); AVCodecContext *pVideoOutCodecCtx = pVideoOutStream->codec; pVideoOutCodecCtx->codec_id = CODEC_ID_H264; pVideoOutCodecCtx->codec_type = CODEC_TYPE_VIDEO; pVideoOutCodecCtx->bit_rate = pVideoInCodecCtx->bit_rate; pVideoOutCodecCtx->width = pVideoInCodecCtx->width; pVideoOutCodecCtx->height = pVideoInCodecCtx->height; pVideoOutCodecCtx->pix_fmt = pVideoInCodecCtx->pix_fmt; pVideoOutCodecCtx->sample_rate = pVideoInCodecCtx->sample_rate; pVideoOutCodecCtx->gop_size = 30; 但是avcodec_open()失败了。 我需要设置哪些其他值才能使x264满意?