ffmpeg(ignore)--只改封装(不改编码) 转换FVL(h264+aac)→AVI(h264+aac)

这篇博客介绍了如何使用C代码将FLV文件,包含h264视频编码和aac音频编码,转换为AVI格式,保持原有的编码不变,仅改变封装格式。
摘要由CSDN通过智能技术生成

转码和转换

1)demuxing解封装:	封装文件file→→→编码状态压缩数据包data package)
//根据输入源的文件扩展名来选择最佳的解封装器(在libavformat库里面)。

2)decoding解码:	数据包data package ——> 未压缩的数据帧frame
//如果使用-c copy或-codec copy表示输入输出使用相同的编码方式👉👉跳过编解码过程

3)optional filtering可选的滤镜:通过指定的滤镜修改解码后的数据帧。

3)encoding编码:frame ——> pacet

4)muxing封装:packet ——> 文件file

在这里插入图片描述
在这里插入图片描述

flv->mp4的指令:
在使用ffmpeg转码的过程中,由于我的flv文件使用的视频编码是h264,音频是aac,所以转码的过程中flv->mp4,仅仅是容器改变了,编码方式几乎没有变化

flv->mp4的指令:
	ffmpeg -i input.flv output.mp4 //此过程需要对视频进行重新编码,耗费资源和cpu较为严重,

但是假如:
flv[h264 + aac] -> mp4的指令://不需要对视频进行重新编码,仅仅需要对文件重新加以MP4容器即可
	ffmpeg -i input.flv -vcodec copy -acodec copy output.mp4	
	//显式指明不用编解码👉👉节省大部分计算机资源,近乎拷贝文件

下面代码是flv[h264 + aac] ->AVI[h264 + aac]的c代码实现:

//flv[h264 + aac] ->AVI视频封装格式之间的转换。
#include "stdafx.h"
#include "libavformat/avformat.h"
int _tmain(int argc, _TCHAR* argv[])
{
   
    AVOutputFormat *ofmt = NULL;
    AVFormatContext *ifmt_ctx = NULL, *ofmt_ctx = NULL;
    AVPacket pkt;
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值