资源简介
用ffmpeg代码进行转码,音频进行了重采样
代码片段和文件信息
// convertVideo.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include
#include
#include
using namespace std;
extern “C“
{
#define __STDC_CONSTANT_MACROS
#define __STDC_FORMAT_MACROS
#include “libavcodec/avcodec.h“
#include “libavformat/avformat.h“
#include “libavfilter/avfiltergraph.h“
#include “libavfilter/buffersink.h“
#include “libavfilter/buffersrc.h“
#include “libavutil/avutil.h“
#include “libavutil/opt.h“
#include “libavutil/pixdesc.h“
#include “libavutil/imgutils.h“
#include “libavutil/avassert.h“
#include “libavutil/channel_layout.h“
#include “libavutil/opt.h“
#include “libavutil/mathematics.h“
#include “libswscale/swscale.h“
#include “libswresample/swresample.h“
#include “libavutil/audio_fifo.h“
};
bool muxer(string outVideoPathstring outAudioPath);
#define SWR_CH_MAX 32
SwrContext* initSwr(SwrContext* pSwrCtx AVFormatContext *in_fmt_ctx AVFormatContext *out_fmt_ctx int audio_index)
{
if (out_fmt_ctx->streams[0]->codec->channels != in_fmt_ctx->streams[audio_index]->codec->channels
|| out_fmt_ctx->streams[0]->codec->sample_rate != in_fmt_ctx->streams[audio_index]->codec->sample_rate
|| out_fmt_ctx->streams[0]->codec->sample_fmt != in_fmt_ctx->streams[audio_index]->codec->sample_fmt || true )
{
if ( NULL == pSwrCtx )
{
pSwrCtx = swr_alloc();
}
#if LIBSWRESAMPLE_VERSION_MINOR >= 17 // 根据版本不同,选用适当函数
av_opt_set_int(pSwrCtx “ich“ in_fmt_ctx->streams[audio_index]->codec->channels 0);
av_opt_set_int(pSwrCtx “och“ out_fmt_ctx->streams[0]->codec->channels 0);
av_opt_set_int(pSwrCtx “in_sample_rate“ in_fmt_ctx->streams[audio_index]->codec->sample_rate 0);
av_opt_set_int(pSwrCtx “out_sample_rate“ out_fmt_ctx->streams[0]->codec->sample_rate 0);
av_opt_set_sample_fmt(pSwrCtx “in_sample_fmt“ in_fmt_ctx->streams[audio_index]->codec->sample_fmt 0);
av_opt_set_sample_fmt(pSwrCtx “out_sample_fmt“ out_fmt_ctx->streams[0]->codec->sample_fmt 0);
#else
pSwrCtx = swr_alloc_set_opts(pSwrCtx
out_fmt_ctx->streams[0]->codec->channel_layout
out_fmt_ctx->streams[0]->codec->sample_fmt
in_fmt_ctx->streams[audio_index]->codec->sample_rate
in_fmt_ctx->streams[audio_index]->codec->channel_layout > 0 ?in_fmt_ctx->streams[audio_index]->codec->channel_layout : AV_CH_LAYOUT_STEREO
in_fmt_ctx->streams[audio_index]->codec->sample_fmt
in_fmt_ctx->streams[audio_index]->codec->sample_rate
0 NULL);
#endif
swr_init(pSwrCtx);
return pSwrCtx;
}
return NULL;
}
void setup_array(uint8_t* out[SWR_CH_MAX] AVframe* in_frame int format int samples)
{
if (av_sample_fmt_is_planar((AVSampleFormat)format))
{
int i;
int plane_size = av_get_bytes_per_sample((AVSampleF
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-06-15 17:47 TestForConvertVideo\
目录 0 2015-05-20 15:24 TestForConvertVideo\Debug\
文件 70144 2015-05-25 17:29 TestForConvertVideo\Debug\TestForConvertVideo.exe
文件 578992 2015-05-25 17:29 TestForConvertVideo\Debug\TestForConvertVideo.ilk
文件 961536 2015-05-25 17:29 TestForConvertVideo\Debug\TestForConvertVideo.pdb
目录 0 2015-06-15 17:46 TestForConvertVideo\ipch\
目录 0 2015-06-15 17:47 TestForConvertVideo\ipch\testforconvertvideo-2fd58473\
目录 0 2015-05-20 14:39 TestForConvertVideo\TestForConvertVideo\
文件 924 2015-05-19 10:37 TestForConvertVideo\TestForConvertVideo.sln
文件 31232 2015-06-15 17:47 TestForConvertVideo\TestForConvertVideo.suo
文件 18936320 2014-05-06 10:08 TestForConvertVideo\TestForConvertVideo\avcodec-55.dll
文件 1340928 2014-05-06 10:08 TestForConvertVideo\TestForConvertVideo\avdevice-55.dll
文件 2034688 2014-05-06 10:08 TestForConvertVideo\TestForConvertVideo\avfilter-4.dll
文件 5342720 2014-05-06 10:08 TestForConvertVideo\TestForConvertVideo\avformat-55.dll
文件 418304 2014-05-06 10:08 TestForConvertVideo\TestForConvertVideo\avutil-52.dll
文件 28536 2015-05-27 17:25 TestForConvertVideo\TestForConvertVideo\convertVideo.cpp
文件 1709108 2014-01-05 12:46 TestForConvertVideo\TestForConvertVideo\cuc_ieschool.ts
目录 0 2015-05-25 17:29 TestForConvertVideo\TestForConvertVideo\Debug\
文件 1698 2015-05-25 17:29 TestForConvertVideo\TestForConvertVideo\Debug\cl.command.1.tlog
文件 23138 2015-05-25 17:29 TestForConvertVideo\TestForConvertVideo\Debug\CL.read.1.tlog
文件 4924 2015-05-25 17:28 TestForConvertVideo\TestForConvertVideo\Debug\CL.read.2.tlog
文件 1874 2015-05-25 17:29 TestForConvertVideo\TestForConvertVideo\Debug\CL.write.1.tlog
文件 145813 2015-05-25 17:29 TestForConvertVideo\TestForConvertVideo\Debug\convertVideo.obj
文件 2 2015-05-25 17:29 TestForConvertVideo\TestForConvertVideo\Debug\li
文件 2 2015-05-25 17:29 TestForConvertVideo\TestForConvertVideo\Debug\li
文件 2 2015-05-25 17:29 TestForConvertVideo\TestForConvertVideo\Debug\li
文件 2 2015-05-25 17:29 TestForConvertVideo\TestForConvertVideo\Debug\li
文件 2 2015-05-25 17:29 TestForConvertVideo\TestForConvertVideo\Debug\li
文件 2 2015-05-25 17:29 TestForConvertVideo\TestForConvertVideo\Debug\li
文件 2 2015-05-25 17:29 TestForConvertVideo\TestForConvertVideo\Debug\li
文件 2 2015-05-25 17:29 TestForConvertVideo\TestForConvertVideo\Debug\li
............此处省略142个文件信息
相关资源
- FFMPEG入门基础资料pdf
- 批量文件转码工具支持GBKUTF-8转换
- ffmpeg ffdoc (FFMPEG的最完整教程)
- 将rtsp转码为flv格式用于h5播放前端使
- ffmpeg转码为hls代码
- ffmpeg-4.0.2最新版 windows vs2013编译动态
- ffmpeg实现直播功能
- linuxubuntu下ffmpeg + alsa 的音频播放器
- 内存H264+PCM发布rtmp.rar
- ffmpeg-4.2.1-win32-dev.zip
- M3U8视频PC机64位辅助工具2.0 —&md
- ffmpeg-3.2.tar.bz2
- 适用于VC的FFMpeg静态库已编译)
- 使用ffmpeg api解码h264视频码流,并且能
- MP4v2录制rtsp流存为MP4文件
- [8] ffmpeg + SDL2 实现的视频播放器「快
- ffmpegexe文件
- qt5.8实现rtsp流播放
- OpenCV 1.0.0 patch for ffmpeg errors
- ffmpeg将一个视频文件解码输出bmp和j
- 支持OpenCV3.2的opencv_ffmpeg.7z
-
Mpla
yer.exe 最新版 - ffmpeg 硬件加速
- FFmpeg解码MP4分别播放YUV视频和PCM音频
- 优酷1080转码会员转码工具
- ffmpeg(amr转换mp3).exe.zip
- zw_csharp_ffmpeg_rtsp_demo.zip
- 比较新版本的ffmpeg.exe
-
ijkpla
yer-anddroid编译好的so库 已经非 - 编译FFmpeg3.2.2生成的库文件及头文件
评论
共有 条评论