创建MP4文件后FFMPEG中未指定的像素格式

时间:2017-03-29 15:05:43

标签: c++ video-streaming mp4 libavcodec libavformat

我正在处理该项目,要更改编解码器和流文件的信息。在使用此代码更改编解码器和流信息之后,使用av_dump_format()来修改输出文件,它显示我在文件中设置的确切内容。

AVCodecParameters *Out_codecpar=avcodec_parameters_alloc();
                Out_codecpar->codec_type=in_codecpar->codec_type;
                Out_codecpar->codec_id=AV_CODEC_ID_H264;
                Out_codecpar->codec_tag=in_codecpar->codec_tag;
                Out_codecpar->extradata=in_codecpar->extradata;
                Out_codecpar->extradata_size=in_codecpar->extradata_size;
                Out_codecpar->format=AV_PIX_FMT_YUV420P;
                Out_codecpar->bit_rate=in_codecpar->bit_rate;
                Out_codecpar->bits_per_coded_sample=in_codecpar->bits_per_coded_sample;
                Out_codecpar->bits_per_raw_sample=in_codecpar->bits_per_raw_sample;
                Out_codecpar->profile=100;
                Out_codecpar->level=6;
                Out_codecpar->width=in_codecpar->width;
                Out_codecpar->height=in_codecpar->height;
                Out_codecpar->sample_aspect_ratio=in_codecpar->sample_aspect_ratio;
                Out_codecpar->field_order=in_codecpar->field_order;
                Out_codecpar->color_range=0;
                Out_codecpar->color_primaries=in_codecpar->color_primaries;
                Out_codecpar->color_trc=in_codecpar->color_trc;
                Out_codecpar->color_space=in_codecpar->color_space;
                Out_codecpar->chroma_location=in_codecpar->chroma_location;
                Out_codecpar->video_delay=in_codecpar->video_delay;
                Out_codecpar->channel_layout=in_codecpar->channel_layout;
                Out_codecpar->channels=in_codecpar->channels;
                Out_codecpar->sample_rate=in_codecpar->sample_rate;
                Out_codecpar->block_align=in_codecpar->block_align;
                Out_codecpar->frame_size=in_codecpar->frame_size;
                Out_codecpar->initial_padding=in_codecpar->initial_padding;
                Out_codecpar->trailing_padding=in_codecpar->trailing_padding;
                Out_codecpar->seek_preroll=in_codecpar->seek_preroll;
                ret = avcodec_parameters_copy(out_stream->codecpar, Out_codecpar);

使用FFMPEG在终端中运行输出文件后。它显示如下错误:

无法找到流0的编解码器参数(视频:h264(avc1 / 0x31637661),无,1280x720,6194 kb / s):未指定的像素格式 考虑增加'analyzeuration'和'probesize'选项的值

这次我从未搞砸mp4文件的任何标题信息,我也使用格式= AV_PIX_FMT_YUV420P 设置像素格式,为什么文件不在VLC中播放以及如何为AV_CODEC_ID_H264设置像素格式?

0 个答案:

没有答案