热门

最新

红包

立Flag

投票

同城

我的

发布
qq_34305997
「已注销」
4 年前
trueqq_34305997

将mp4文件读出的AVPacket包转化成annexb帧

AVBSFContext * h264bsfc;
const AVBitStreamFilter * filter = av_bsf_get_by_name("h264_mp4toannexb");
ret = av_bsf_alloc(filter, &h264bsfc);
avcodec_parameters_copy(h264bsfc->par_in, input_fmt_ctx->streams[video_stream_index]->codecpar);
av_bsf_init(h264bsfc);

AVPacket* packet = av_packet_alloc();
while( av_read_frame(format_ctx_, packet) >= 0 ) {
if( packet.stream_index == video_stream_index ) {
ret = av_bsf_send_packet(h264bsfc, packet);
if(ret < 0) qDebug("av_bsf_send_packet error");

while ((ret = av_bsf_receive_packet(h264bsfc, packet)) == 0) {
fwrite(packet->data, packet->size, 1, fp);
}
}

av_packet_unref(packet);
}

av_packet_free(&packet);
av_bsf_free(&h264bsfc);

CSDN App 扫码分享
分享
评论
点赞
打赏
  • 复制链接
  • 举报
下一条:
为什么我的这个代码做不出来别人例子的效果呢?
立即登录