使用ffmpeg的库编码mpeg的技术(原创)

MPEG4码流分析之我见      最近做了MPEG-4编码的视频文件的分析,找资料的时候费了好大的劲,在这里分享自己的一些心得体会,也算对自己工作的一个总结吧。必须先推荐一个非常好用的码流分析工具:Elecard Stream Analyzer。分析结果可以在图片中看到。  第一步,先说说如何对获得MPEG-4编码的视频。我的方法是从纯视频格式(.yuv)利用软件ffmpeg经过MPEG-4编码得到.m4v文件,这个 阅读详情

使用ffmpeg的库编码mpeg的技术总结报告
Sun Gang, 2003-11-21

一 . 概述
 Ffmpeg是一个优秀的基于LGPL协议的视频/音频转换器.目前已经有很多多媒体应用软件使用它来作为编码器,如Xine,Mplayer,Xbox Media Player等.它也能用于从视频/音频源来抓取数据保存为视频音频文件.Ffmpeg还能从各种采样率来开始转换,能够通过高品质的多相滤波技术来实现放大缩小,频域相域的变换等.
 这里,我们使用Ffmpeg来实现mpeg的编码过程. 
二 . 摄像头的视频捕捉调用相关说明(即使用Video4Linux API获取图象的调用说明)
#include <videodev.h>
struct video_window vid_win;
struct video_capability vid_caps;
struct video_picture vid_pic;
struct video_mbuf mbuf;

1. 打开设备
int dev = open("/dev/video0",O_RDWR);

2. 获取相关参数
ioctl (dev, VIDIOCGCAP, &vid_caps);
ioctl (dev, VIDIOCGWIN, &vid_win);
ioctl (dev, VIDIOCGPICT, &vid_pic);

//Check to see if we can use mmap
if(0 == ioctl(dev,VIDIOCGMBUF,&mbuf))...;

//Check to see if this camera uses MJPEG
if(vid_caps.type & VID_TYPE_MJPEG_ENCODER)...;

3. 设置相关参数
ioctl(dev, VIDIOCSPICT, &vid_pic);
ioctl(dev, VIDIOCSWIN,  &vid_win);

4. 获取图象数据
read (dev, picbuff, size);
//至此,图象数据存放在picbuff中
三 . QRecord编码接口说明(编码为MPEG1 System format, 其中视频采用mpeg1video, 音频采用MP2)
  定义如下
class QRecord
{
public:
//encode mpeg1 file with ffmpeg library
 static int audio_input_frame_size;
 static AVOutputFormat *fmt;
 static AVFormatContext *oc;
 static AVStream *audio_st,*video_st; 
 static int Open(const char* filename,int width,int height,int frame_rate,bool audio_on=false);
 static int AddVideoFrame(uint8_t* y,uint8_t* u,uint8_t* v);
 static int AddAudioFrame(int16_t* inbuf);
 static int Close();

//for decompress Jpeg
 static int DecompressJpeg(const char* input,unsigned char* rgbbuffer);
//for rgb2yuv convert
 static int count ;
 static float RGBYUV02990[256], RGBYUV05870[256], RGBYUV01140[256];
 static float RGBYUV01684[256], RGBYUV03316[256];
 static float RGBYUV04187[256], RGBYUV00813[256];
 static void InitRGB2YUVLookupTable();
 static int RGB2YUV (int x_dim, int y_dim, void *bmp, void *y_out, void *u_out, void *v_out, int flip);
 
 static int add_scanline_to_rgbbuffer(unsigned char* linebuffer,int length,unsigned char* rgbbuffer);
};
几个重要接口函数说明,
QRecord::Open() 打开要存储文件,并初始化各项参数
QRecord::AddVideoFrame()增加一帧视频数据,格式为YUV420P,
QRecord::AddAudioFrame()增加一帧音频数据,格式为44.1KHz,16bits,2channels PCM data
QRecord::Close()关闭文件,释放内存等.

四 . 编码速度测试报告
测试数据为25张320X240,RGB24的图片文件,编码1000帧的各自需要时间如下:
VIA Cyrix 1G, 96M ram为 39-42秒
Intel PIII-M 800M, 128M ram 为6秒
Intel PIII 550M,128M ram为10 秒.

FFmpeg4 规范详解:MPEG-4 标准的应用与实践 MPEG-4标准,全称为动态图像压缩编码国际标准ISO/IEC 14496,是多媒体数据压缩技术领域的一块里程碑。与早期的视频编码标准相比,MPEG-4不仅强化了压缩效率,而且增加了交互性、自然和合成数据的集成以及版权保护等特性。它支持对音频、视频、2D及3D图形和其它类型数据的综合编码。MPEG-4标准的出现,标志着数字媒体内容创建和传输开始迈入更高的效率和更广的应用范围。MPEG-4标准的提出源于对低比特率传输需求的响应,以及对数字版权管理(DRM)的重视。 阅读详情

相关推荐

ffmpeg编码成mpeg4或h264文件

ffmpeg编码成mpeg4或h264文件

使用FFMPEG编码保存MPEG-1/MPEG-2文件格式

一、关于VCD/SVCD/DVD    1、VCD采用的是MPEG-1技术标准,清晰度在250线左右,仅相当于普通录像机的水平;VCD是1路立体声输出,唱卡拉OK时两个声道可分别存储原唱和纯伴音两路信号。    2、SVCD采用的是MPEG-2技术标准,清晰度达到了350线;SVCD可以提供2路立体声和4路单声道。    3、DVD采用的是MPEG-2技术标准,清晰度已达到500线;DVD可提供2

jonfei的专栏 3336

Zynq裸机调试RTL8211FS网卡踩坑记:从ping不通到完美兼容的完整代码修改

本文详细记录了在Zynq平台上使用Xilinx SDK(XSDK)调试RTL8211FS网卡的完整过程,从最初的ping不通问题到最终实现完美兼容的解决方案。通过分析PHY芯片的寄存器配置差异,提供了关键代码修改和调试技巧,帮助开发者快速解决类似问题。

weixin_42550597的博客 419

FFMPEG实现PCM编码(采用封装格式实现)

技术在于交流、沟通,转载请注明出处并保持作品的完整性。 原文:https://blog.youkuaiyun.com/hiwubihe/article/details/81260882   [音频编解码系列文章] 音频编解码基础 FFMPEG实现音频重采样 FFMPEG实现PCM编码(采用封装格式实现) FFMPEG实现PCM编码(不采用封装格式实现) FAAC库实现PCM编码 FAAD库实...

音视频技术之路QQ_1695710968 5127

CH341的I2C流模式(StreamI2C)到底怎么用?从EEPROM读写到自定义设备,一篇讲清参数配置逻辑

本文详细解析了CH341的I2C流模式(StreamI2C)的使用方法,从EEPROM读写到自定义设备的参数配置逻辑。通过深入分析I2C协议基础、StreamI2C参数映射关系及典型设备配置示例,帮助开发者快速掌握StreamI2C的应用技巧,解决实际开发中的常见问题。

weixin_30932215的博客 447

英飞凌ADS开发环境搭建全流程:从安装到第一个程序烧录

本文详细介绍了英飞凌ADS开发环境搭建的全流程,包括环境准备、ADS安装与配置、MemTools烧录技巧等关键步骤。针对嵌入式开发者,特别提供了从安装到第一个程序烧录的实战指南,涵盖常见问题解决方案和优化建议,帮助开发者快速上手英飞凌AURIX系列微控制器的开发工作。

qsc901234的博客 333

ffmpeg实现转码一个普通视频文件为视频mpeg4,音频mp3的功能的程序

本程序实现转码一个普通视频文件为视频mpeg4,音频mp3的功能 #include   #include   #include   #include   #include   #include   #include   main(int argc,char **argv)  {     const char *input_file_name="/root/movies/

zqf_office的专栏 743

拜耳阵列(Bayer Pattern)和解马赛克简介

拜尔阵列由柯达的布莱斯·拜尔发明,拜尔阵列将更多的像素用于绿色,而不是红色和蓝色,因为人眼对绿色更敏感。但这张照片,每个像素只有rgb中的一种颜色,每个像素还缺少其它两个颜色分量,效果如下图3所示。典型的图像传感器(例如我们在数码相机中使用的图像传感器,主要有CCD, CMOS)由许多单独的光电传感器组成,所有这些传感器都会捕获光线。如果想要获得不同颜色的光,最直接的做法是加入不同颜色的滤镜,从而滤出 RGB 三个通道的颜色。这个覆盖层可以理解为一个过滤层,每种类型的过滤器通常只允许一种颜色的光线的通过。

qq_34999565的博客 5982

FFMpeg 实现视频编码、解码

FFMpeg 作为音视频领域的开源工具,它几乎可以实现所有针对音视频的处理,本文主要利用 FFMpeg 官方提供的 SDK 实现音视频最简单的几个实例:编码、解码、封装、解封装、转码、缩...

音视频开发进阶 5535

机械革命重装Win11详细教程

通过以上步骤,你可以在机械革命电脑上成功重装Windows 11。虽然整个过程可能看起来有些复杂,但只要你按照步骤逐一进行,就能够顺利完成安装并享受到全新的操作系统带来的便利和性能提升。希望本文能够帮助到你,如果你有任何问题或疑问,请随时联系我们的技术支持团队。

mmoo_python的博客 3130

FA 新增资产API Demo

DECLARE l_trans_rec fa_api_types.trans_rec_type; l_dist_trans_rec fa_api_types.trans_rec_type; l_asset_hdr_rec fa_api_types.asset_hdr_rec_type; l_asset_desc_rec fa_a

chosen1brain的专栏 2142

ffmpeg源码分析--4.关于mpeg文件格式1总

ffmpeg源码分析--4.关于mpeg文件格式1总

wangcong02345的专栏 2929

10、业务任务(service task)

业务任务通常是用来调用业务系统,camunda中可以调用JAVA代码或者rest api调用。 在camunda中,业务任务实现方式有5种,本节先用一个小例子显示前三种,External 外部任务,Connector连接器后面分别讲解。假设用户预约电器公司上门维修家电,然后师傅上门维修,完成后公司回访客户对师傅服务打分,师傅查询自己的评分。使用java class 模式实现业务任务。 com.forestlake.camunda.servicetask.ReserveRepair 使用Delegate ex

leyoliu的博客 3231

FFMpeg编码MPEG-1,2视频

//STMPEG.h    #include #include #include #pragma once    #ifdef __cplusplus extern "C" { #endif #include #include #include #ifdef __cplusplus } #endif  enum MPEG_TYPE{

大萝卜 1838

【RT-DETR有效改进】利用EMAttention加深网络深度提高模型特征提取能力(特征选择模块)

本文给大家带来的改进机制是EMAttention注意力机制,它的核心思想是,重塑部分通道到批次维度,并将通道维度分组为多个子特征,以保留每个通道的信息并减少计算开销。EMA模块通过编码全局信息来重新校准每个并行分支中的通道权重,并通过跨维度交互来捕获像素级别的关系。本文改进是基于ResNet18、ResNet34、ResNet50、ResNet101,文章中均以提供,本专栏的改进内容全网独一份深度改进RT-DETR非那种无效Neck部分改进,

Snu77的博客 3170

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

使用FFmpeg将视频编码格式转化为H264编码

安装部署FFmpeg,通过Java调用FFmpeg将其它编码格式视频转化为h264编码格式支持video标签播放

qq_31456173的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

FFmpeg中MPEG-4编码程序追踪,其他FFMPEG自带编码器同理

FFmpeg中与MPEG-4编码相关的主要文件有mpegvideo.c,h263.c等。 在mpegvideo.c中, AVCodec mpeg4_encoder = {    "mpeg4",    CODEC_TYPE_VIDEO,    CODEC_ID_MP

maopig的专栏 2560

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

最完整JSMpeg视频编码教程:使用FFmpeg生成兼容MPEG-TS流的完整命令

还在为网页视频播放的高延迟和兼容性头疼吗?JSMpeg提供了一个JavaScript实现的MPEG1视频解码方案,支持超低延迟(~50ms)流媒体传输。本文将为你揭秘如何用FFmpeg生成完美兼容的MPEG-TS流,让你的网页视频体验飞起来! 读完本文你将掌握: - ✅ MPEG-TS流格式的核心配置要点 - ✅ 多场景FFmpeg编码命令大全 - ✅ 流媒体服务器搭建与优化技巧 - ✅ 常见坑

gitblog_01125的博客 1108

FFmpeg实现h264 转mpeg1video 存储

需要实现的功能: 把h264文件进行解码,解码后然后进行mpeg1的编码. 这一步完成接下来再实现存储为ts,本篇代码实现了第一部分, 注意事项: ffmpeg版本问题,今天2020.2.11的最新版本是ffmpeg 4.2.2,这个对mpeg1video的编码支持不行. 使用ffmpeg sample encode_video.c会报: mpeg1video The encoder time...

zk_shentu的博客 5012

❤️FFmpeg❤️ MP4格式文件,将MPEG4的编码方式转为H.264

区别: MPEG4是网络视频图像压缩标准,它包含的标准从ISO-IEC-14496-1 到 ISO-IEC-14496-10 2. MPEG4中规定了两种视频压缩方法,一种在ISO-IEC-14496-2里面描述,一种在ISO-IEC-14496-10里面描述。其中ISO-IEC-14496-10的算法就是我们熟知的H.264 3. 在这两种压缩算法中,H.264的性能更好一些 视频编码新标准H.264 windows系统 64位 下载链接:https://github.com/BtbN/FFmpeg-Bu

路边小M's Blog 9316

mp4格式的视频,编码方式mpeg4,转化为h264

知识点:在使用vcastr3.swf播放器播放flv视频,(同时在html5页面,使用《video》标签时),发现某些MP4格式的代码不能播放 原因:vcastr3.swf和video,不支持mpeg4编码格式的MP4视频播放 参考:http://www.runoob.com/html/html5-video.html (video标签) https://www.cnb...

weixin_34390996的博客 4066

视频编码标准(H.264/AVC、H.265/HEVC、AV1、MPEG-2 和 MPEG-4 Part 2)

编码标准发布年份压缩效率优点缺点主要应用场景H.264/AVC2003高兼容性广,成熟,适合实时编码对 4K 支持不足,硬件要求较高流媒体、视频会议、移动设备H.265/HEVC2013非常高压缩效率高,支持 4K/8K 和 HDR专利费用高,硬件要求高4K 流媒体、超高清电视、VR/ARAV12018极高开源免版税,压缩效率优于 H.265编码复杂度极高,硬件支持尚未完全普及开源流媒体、网页视频、WebRTCMPEG-21995低兼容性广,技术成熟。

qq_45889056的博客 5861

linux mpeg4ip 编译,利用Linux实现MPEG4流媒体技术

mpeg4流媒体技术32 (总680)           利用Linux实现MPEG4流媒体技术              2003年利用Linux实现MPEGImplementationofMPEG4Stream4流媒体技术mediaTechnologywithLinus王丽仪(广东工业大学 广州 510090)【摘 要】 动画、视频、音频、互MPEG4使多媒体内容更多元化,多媒体组件能更容易...

weixin_35215870的博客 329

音视频格式.mp4和编码格式MPEG4以及ffmpeg转码

1、mpeg4和mp4格式不一样,区别是:1、MP4是一种视频文件格式,而mpeg4是一个编码标准,即为一个编解码器。可以理解为,mp4是支持mpeg4的标准的音频视频文件,而支持mpeg4标准的文件格式有很多种,mp4和avi都是其中的一种。 2、MP4 是一种视频格式,它可以存储不同的媒体,通常使用 MPEG4 编解码器进行压缩,但并非总是如此。而 MPEG4 本身可以应用于不同的文件格式,包括 MP4、MOV、AVI、MKV、OGG 和 MXF。 3、编解码器是对信号进行编码和解码的程序。媒体编解

luyao3038的博客 1万+
上一篇: .wav文件格式图解
下一篇: TCP/IP Datagram Explain
icedust
博客等级 码龄24年 33粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值