资源简介
c++使用ffmpeg把h264/h265和mp3写入mp4文件,内含ffmpeg库、示例demo、视频素材。
代码片段和文件信息
/*
* Copyright (c) 2014 Lukasz Marek
*
* Permission is hereby granted free of charge to any person obtaining a copy
* of this software and associated documentation files (the “Software“) to deal
* in the Software without restriction including without limitation the rights
* to use copy modify merge publish distribute sublicense and/or sell
* copies of the Software and to permit persons to whom the Software is
* furnished to do so subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED “AS IS“ WITHOUT WARRANTY OF ANY KIND EXPRESS OR
* IMPLIED INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM DAMAGES OR OTHER
* LIABILITY WHETHER IN AN ACTION OF CONTRACT TORT OR OTHERWISE ARISING FROM
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include
#include
#include
static const char *type_string(int type)
{
switch (type) {
case AVIO_ENTRY_DIRECTORY:
return ““;
case AVIO_ENTRY_FILE:
return ““;
case AVIO_ENTRY_BLOCK_DEVICE:
return ““;
case AVIO_ENTRY_CHARACTER_DEVICE:
return ““;
case AVIO_ENTRY_NAMED_PIPE:
return ““;
case AVIO_ENTRY_SYMBOLIC_link:
return “nk>“;
case AVIO_ENTRY_SOCKET:
return ““;
case AVIO_ENTRY_SERVER:
return ““;
case AVIO_ENTRY_SHARE:
return ““;
case AVIO_ENTRY_WORKGROUP:
return ““;
case AVIO_ENTRY_UNKNOWN:
default:
break;
}
return ““;
}
static int list_op(const char *input_dir)
{
AVIODirEntry *entry = NULL;
AVIODirContext *ctx = NULL;
int cnt ret;
char filemode[4] uid_and_gid[20];
if ((ret = avio_open_dir(&ctx input_dir NULL)) < 0) {
av_log(NULL AV_LOG_ERROR “Cannot open directory: %s.\n“ av_err2str(ret));
goto fail;
}
cnt = 0;
for (;;) {
if ((ret = avio_read_dir(ctx &entry)) < 0) {
av_log(NULL AV_LOG_ERROR “Cannot list directory: %s.\n“ av_err2str(ret));
goto fail;
}
if (!entry)
break;
if (entry->filemode == -1) {
snprintf(filemode 4 “???“);
} else {
snprintf(filemode 4 “%3“PRIo64 entry->filemode);
}
snprintf(uid_and_gid 20 “%“PRId64“(%“PRId64“)“ entry->user_id entry->group_id);
if (cnt == 0)
av_log(NULL AV_LOG_INFO “%-9s %12s %30s %10s %s %16s %16s %16s\n“
“TYPE“ “SIZE“ “NAME“ “UID(GID)“ “UGO“ “MODIFIED“
“ACCE
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4915591 2016-09-06 15:31 ffmpegMp4\AvPktAIn.mp3
文件 4813052 2016-06-30 03:21 ffmpegMp4\AvPktVIn.264
文件 686760 2016-08-27 10:47 ffmpegMp4\AvPktVIn.265
文件 25633792 2016-09-05 23:11 ffmpegMp4\Debug\avcodec-57.dll
文件 4962816 2016-09-05 23:11 ffmpegMp4\Debug\avformat-57.dll
文件 564224 2016-09-05 23:11 ffmpegMp4\Debug\avutil-55.dll
文件 44544 2016-09-06 17:33 ffmpegMp4\Debug\ffmpegMp4.exe
文件 470244 2016-09-06 17:33 ffmpegMp4\Debug\ffmpegMp4.ilk
文件 830464 2016-09-06 17:33 ffmpegMp4\Debug\ffmpegMp4.pdb
文件 258176 2016-08-26 17:46 ffmpegMp4\Debug\out.264
文件 292352 2016-09-05 23:11 ffmpegMp4\Debug\swresample-2.dll
文件 41559 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\developer.html
文件 5642 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\avio_dir_cmd.c
文件 4060 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\avio_reading.c
文件 19624 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\decoding_encoding.c
文件 14714 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\demuxing_decoding.c
文件 5747 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\extract_mvs.c
文件 10058 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\filtering_audio.c
文件 9180 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\filtering_video.c
文件 11854 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\filter_audio.c
文件 5213 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\http_multiclient.c
文件 1758 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\Makefile
文件 1941 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\me
文件 21668 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\muxing.c
文件 14366 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\qsvdec.c
文件 888 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\README
文件 5631 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\remuxing.c
文件 8005 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\resampling_audio.c
文件 5028 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\scaling_video.c
文件 29409 2016-09-05 23:11 ffmpegMp4\ffmpegLib\doc\examples\transcode_aac.c
............此处省略267个文件信息
相关资源
- ffmpeg for MFC 1.2 源代码
- C++ 通过FFmpeg将rtsp视频流到本地mp4文件
- windows下的ffmpeg、MFC制作的播放器
- FFmpeg x86 x64库
- C H264格式 转MP4格式
- H264 转 YUV
- C++ ffmpeg Release版本
- ffplay for MFC 1.0.1
- Linux下C语言FLV文件拆解成h264视频流和
- VC H264格式视屏播放器源码
- 开源H.264码流分析器程序+源代码
- C++ 解析H264文件
- 把H264和音频流打包成PS流
- H264 TS打包C语言源代码
- linux系统C语言AVI格式音视频封装应用
- 非常完整的ffmpeg+mfc播放器
- ffmpeg简易播放器-音视频同步
- 使用RTP协议发送和接收H264的(支持解
- ffmpeg for MFC 1.2 测试版
- RTSP PUSH tcp udp h264 easydarwin
- Qt/C++模仿酷狗音乐播放器执行文件
- C#开发FFMPEG(API方式) FFmpeg拉取RTMP流
- FFMpeg_FFPlay 源码剖析(杨书良)
- H264视频解压缩封装 c++
- ffmpeg-20191004-e6625ca-win64-static.rar
- VS2019编译的32位最新版ffmpeg类库文件
- RTSP服务器 C语言
- libx264最新稳定版本附WINDOWS下编译步骤
- yasm FFmpeg必备
- FFmpeg basic
评论
共有 条评论