FFMPEG h264 ACC 合成 mkv ts;h264 mp3 合成 MP4 avi flv

本文介绍了如何使用FFMPEG工具将h264 AAC编码的视频流与mkv或ts容器进行合成,以及将h264和mp3编码的音视频流转换为MP4, avi和flv格式的文件。" 115552821,7280047,Log4j2配置:业务日志与定时任务日志分别打印,"['日志管理', 'Java开发', '运维', 'log4j2配置']
摘要由CSDN通过智能技术生成

FFMPEG h264 ACC 合成 mkv ts;h264 mp3 合成 MP4 avi flv


#include <stdio.h>

#include <cstdio>


#include <conio.h>



#define __STDC_CONSTANT_MACROS



#ifdef _WIN32	//Windows

extern "C" {

#include "libavformat/avformat.h"

};

#else			//Linux...

#ifdef __cplusplus

extern "C" {

#endif

#include <libavformat/avformat.h>

#ifdef __cplusplus

};

#endif

#endif


/*
#define errReport(info, val) do{ \

fprintf(stderr, "ERR:: %s %s(line=%d) code=%d\n", __FUNCTION__, info, __LINE__, val); \

getchar(); exit(0); \

}while (0);

*/


typedef struct {

	AVFormatContext *ifmt_ctx;

	int stream_index = 0;

	AVStream *in_stream, *out_stream;

}data_t;



AVOutputFormat *ofmt = NULL;

AVFormatContext *ifmt_ctx_v = NULL, *ifmt_ctx_a = NULL, *ofmt_ctx = NULL;

AVPacket pkt;

int videoindex_v = -1, videoindex_out = -1;

int audioindex_a = -1, audioindex_out = -1;

int frame_index = 0;

int64_t cur_pts_v = 0, cur_pts_a = 0;

#if 0

const char *in_filename_v = "input.h264";

const char *in_filename_a = "input.aac";

#if 1

const char *out_filename = "output.mkv";

#else

const char *out_filename = "output.ts";

#endif

#else

const char *in_filename_v = "input.h264";

const char *in_filename_a = "input.mp3";

#if 0

const char *out_filename = "output.mp4";

#elif 1

const char *out_filename = "output.flv";

#else

const char *out_filename 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值