
FFmpeg
cuijinquan
这个作者很懒,什么都没留下…
展开
-
ffpmeg封装h264裸流成Mpg2容器
ffpmeg的doc目录下阅读了muxing.c其实主要流程: ret = avformat_write_header(oc, NULL); if (ret fprintf(stderr, "Error occurred when opening output file: %s\n", av_err2str(转载 2013-12-22 15:35:34 · 1106 阅读 · 0 评论 -
单节目变码率TS流复用算法的研究及实现
关键词 单节目,变码率,音视频交织,PCR,DTS,PTS,PSI/SI前言在数字电视中,节目的音视频信息经过编码后的数据,称为基本流(ES),为了满足传输需要,这些ES数据一般还要经过打包(PES)复用成传输流(TS)。TS流有两种,一种是仅包括单个节目的音视频的TS流,我们称为单节目流,另一种是多个节目打包复用成一个TS流,我们称之为多节目复用流。在本文中,我们转载 2013-12-22 15:31:26 · 421 阅读 · 0 评论 -
mpegts的PTS获取方式
在IEC ISO 13818 -1 中描述如下PTS占用了33bit,32bit是4个字节,PTS的话还要多出了1bit,所以需要5个字节总共5*8 = 40bits = 4 + 3 + 1 + 15 + 1 + 15 + 1'0011' 4 bslbf PTS [32..30] 3 bslbfmarker_bit 1 bs转载 2013-12-22 15:24:08 · 950 阅读 · 0 评论 -
FLV内容解析
一./* * Copyright (c) 2013 Steven Liu * * * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free转载 2013-12-22 15:13:16 · 475 阅读 · 0 评论 -
muxing.c
doc/examples/muxing.c/** Copyright (c) 2003 Fabrice Bellard** Permission is hereby granted, free of charge, to any person obtaining a copy* of this software and associated documentat转载 2013-12-23 00:55:10 · 764 阅读 · 0 评论 -
FFMPEG详解
认识FFMPEGFFMPEG堪称自由软件中最完备的一套多媒体支持库,它几乎实现了所有当下常见的数据封装格式、多媒体传输协议以及音视频编解码器。因此,对于从事多媒体技术开发的工程师来说,深入研究FFMPEG成为一门必不可少的工作,可以这样说,FFMPEG之于多媒体开发工程师的重要性正如kernel之于嵌入式系统工程师一般。几个小知识:FFMPEG项目是由法国人Fabr转载 2013-12-22 15:50:16 · 480 阅读 · 0 评论 -
ffmpeg音视频同步分析
如何同步视频 PTS和DTS 幸运的是,音频和视频流都有一些关于以多快速度和什么时间来播放它们的信息在里面。音频流有采样,视频流有每秒的帧率。然而,如果我们只是简单的通过数帧和乘以帧率的方式来同步视频,那么就很有可能会失去同步。于是作为一种补充,在流中的包有种叫做DTS(解码时间戳)和PTS(显示时间戳)的机制。为了这两个参数,你需要了解电影存放的方式。像MPEG等格式,使用被转载 2013-12-23 01:01:45 · 534 阅读 · 0 评论 -
https://github.com/roman10/android-ffmpeg-tutorial
https://github.com/roman10/android-ffmpeg-tutorial原创 2013-12-22 16:16:42 · 634 阅读 · 0 评论 -
使用ffmpeg实现转码样例(代码实现)
使用ffmpeg实现转码样例(代码实现)作者 : www.ChinaFFmpeg.com 孙悟空使用ffmpeg转码主要工作如下:Demux -> Decoding -> Encoding -> Muxing其中接口调用如下:av_register_all();avformat_open_inputavformat_find_stream_info转载 2013-12-22 16:00:00 · 692 阅读 · 0 评论 -
How to Build ffmpeg with NDK r9
How to Build ffmpeg with NDK r9by ROMAN10 on AUGUST 18, 2013 · 52 COMMENTSThis is a updated post for a previous post, where we built转载 2013-12-22 16:06:00 · 764 阅读 · 1 评论 -
demo
int ret; AVCodec *audio_codec, *video_codec; AVCodecContext *c; AVFrame *frame; AVPacket pkt; int got_output; /* Initialize libavcodec, and register all codecs and formats. *转载 2013-12-22 15:43:38 · 394 阅读 · 0 评论 -
FFMPEG编码时间戳
FFMPEG编码时间戳昨天打起精神对FFMPEG的编码做了一些小实验,得出如下一些要点。 avcodec_encode_video2以及avcodec_encode_audio2对原始数据Frame进行有效编码,同时会自动根据输入Frame的PTS,在输出Packet的时候会计算出编码后的PTS和DTS。所以只要输入的Frame给出的pts是非常精确的,转载 2013-12-09 12:48:51 · 1812 阅读 · 0 评论 -
JAVE (Java Audio Video Encoder) JAVA 封装ffmpeg
JAVE (Java Audio Video Encoder) JAVA 封装ffmpegJAVE (Java Audio Video Encoder) 类库是一个 ffmpeg 项目的 Java 语言封装。开发人员可以使用JAVE 在不同的格式间转换视频和音频。例如将 AVI 转成 MPEG 动画,等等 ffmpeg 中可以完成的在 JAVE 都有对应的方法。ht转载 2013-12-09 12:47:01 · 3730 阅读 · 0 评论 -
android ndk 编译ffmpeg源码(静态库)
android ndk 编译ffmpeg源码(静态库)1.在Android NDK上建立一個project。2.在project下创建jni文件夹,然后在jni文件夹下创建FFmpeg文件夹將FFmpeg的源代码copy到刚刚创建的FFmpeg文件夹下3.在 $(PROJECT)/jni/ffmpeg 底下建立一個 config.sh:转载 2013-12-09 12:48:28 · 1261 阅读 · 0 评论 -
EncodeHD is built in Visual Studio 2010 (VB.NET) so
Just a few notes about the source to start with. EncodeHD is built in Visual Studio 2010 (VB.NET) so you'll need this to open the project.The binaries for EncodeHD are not included and should be tak转载 2013-12-09 12:47:29 · 548 阅读 · 0 评论 -
FFMPEG列出DirectShow支持的设备
FFMPEG列出dshow支持的设备:[plain] view plaincopyffmpeg -list_devices true -f dshow -idummy 举例:采集摄像头和麦克风[plain] view plaincopyffmpeg -f d转载 2013-12-01 18:46:17 · 555 阅读 · 0 评论 -
图解FFMPEG打开媒体的函数avformat_open_input
此前写了好几篇ffmpeg源代码分析文章,列表如下:图解FFMPEG打开媒体的函数avformat_open_inputffmpeg 源代码简单分析 : av_register_all()ffmpeg 源代码简单分析 : avcodec_register_all()ffmpeg 源代码简单分析 : av_read_frame(转载 2013-12-01 18:41:32 · 545 阅读 · 0 评论 -
ffmpeg解码流程
FFMPEG解码流程: 1. 注册所有容器格式和CODEC: av_register_all() 2. 打开文件: av_open_input_file() 3. 从文件中提取流信息: av_find_stream_info() 4. 穷举所有的流,查找其中种类为CODEC_TYPE_VIDEO 5. 查找对应的解码器: avcodec_find_decoder()转载 2013-12-22 15:46:31 · 438 阅读 · 0 评论 -
FFMpeg框架代码阅读
简介FFmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案。FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。FFmpeg支持MPEG、DivX、MPEG4、AC3、DV、FLV等40多种编码,AVI、MPEG、OGG、Matroska、ASF等90多种解码.TCPMP, VLC, MPlayer等开源播放器都用到了FFmpeg。转载 2013-12-22 15:52:43 · 384 阅读 · 0 评论 -
用NDKr9编译最新ffmpeg2.0.1(ffmpeg2.0.2)到android平台
转载请注明出处 http://www.mingjianhua.com本文参照 http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/ 在linux下的编译,在MAC下也差不多,只需做一点点小改动,在LINUX下也可以参考。最好不要在windows下用cygwin,各种错误会搞得各种烦燥。1、下载NDK,到 http转载 2013-12-22 16:01:43 · 445 阅读 · 0 评论 -
用户接口
用户接口数据结构基本概念编解码器、数据帧、媒体流和容器是数字媒体处理系统的四个基本概念。首先需要统一术语:容器/文件(Conainer/File):即特定格式的多媒体文件。媒体流(Stream):指时间轴上的一段连续数据,如一段声音数据,一段视频数据或一段字幕数据,可以是压缩的,也可以是非压缩的,压缩的数据需要关联特定的编解码转载 2014-01-20 14:28:42 · 701 阅读 · 0 评论 -
深入浅出FFMPEG
深入浅出FFMPEG数字媒体处理的基本流程认识FFMPEGFFMPEG堪称自由软件中最完备的一套多媒体支持库,它几乎实现了所有当下常见的数据封装格式、多媒体传输协议以及音视频编解码器。因此,对于从事多媒体技术开发的工程师来说,深入研究FFMPEG成为一门必不可少的工作,可以这样说,FFMPEG之于多媒体开发工程师的重要性正如kernel之于嵌入式系统转载 2014-01-20 14:25:31 · 4823 阅读 · 0 评论 -
深入浅出FFMPEG
====== 深入浅出FFMPEG =========== 数字媒体处理的基本流程 ========== 认识FFMPEG =====FFMPEG堪称自由软件中最完备的一套多媒体支持库,它几乎实现了所有当下常见的数据封装格式、多媒体传输协议以及音视频编解码器。因此,对于从事多媒体技术开发的工程师来说,深入研究FFMPEG成为一门必不可少的工作,可以这样说,FFMPEG之于多媒体转载 2014-01-20 14:21:49 · 593 阅读 · 0 评论 -
ffmpeg编译,解码 H264
ffmpeg编译,解码 H264 项目需要,要做PC端的解码器,解H264。一直郁闷,终于今天搞定了。记录如下:1,找了两个网站:http://ffdshow-tryout.sourceforge.net/wiki/devel:building 这个,是k-lite的http://ffmpeg.zeranoe.com/builds/转载 2014-01-20 14:18:04 · 833 阅读 · 0 评论 -
FFMPEG的手册
FFMPEG 编译 使用msys+mingw,编译成可以供vc调用的静态库 FFMPEG功能1. 视频音频格式转换Ffmpeg能使用任何支持的格式和协议作为输入: *比如你可以输入YUV文件:ffmpeg -i /tmp/test%d.Y /tmp/out.mpg它将要使用如下文件: /tmp/test0.Y, /tmp/test0.U转载 2014-01-15 00:38:41 · 733 阅读 · 0 评论 -
V4L2视频采集操作流程和接口说明
一般操作流程(视频设备):1. 打开设备文件。 int fd=open("/dev/video0",O_RDWR);2. 取得设备的capability,看看设备具有什么功能,比如是否具有视频输入,或者音频输入输出等。VIDIOC_QUERYCAP,struct v4l2_capability3. 选择视频输入,一个视频设备可以有多个视频输入。VIDIOC_S_INPUT,struct转载 2013-12-26 18:34:16 · 533 阅读 · 0 评论 -
关于ffmpeg如何提取视频的关键帧的问题
用两种方式,一是利用ffmpeg提供的可执行文件进行提取,另外就是用ffmpeg的sdk,进行开发。我下面说一下如何使用ffmpeg sdk进行提取(假设把提取的关键帧保存成bmp,源文件名是sample.mpg):首先获取文件中的视频流:av_register_all(); if(av_open_input_file(&pFormatCtx, filename, NULL, 0转载 2013-12-26 15:43:18 · 731 阅读 · 0 评论 -
多媒体技术
http://blog.youkuaiyun.com/vblittleboy/article/details/8523942原创 2013-12-26 02:55:05 · 513 阅读 · 0 评论 -
Nginx rtmp协议的流媒体服务器
rtmp协议介绍rtmp(Real Time Messaging Protocol)实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的私有协议。它有三种变种:工作在TCP之上的明文协议,使用端口1935;RTMPT封装在HTTP请求之中,可穿越防火墙;RTMPS类似RTMPT,但使用的是HTTPS连接;RTM转载 2013-12-25 19:46:52 · 611 阅读 · 0 评论 -
ffmpeg x264解码在线视频时常见错误
在使用ffmpeg解码视频的时候,会遇到 libavutil 52. 59.100 / 52. 59.100 >[libx264 @ 0x244f620] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX[libx264 @ 0x244f620]>这个是因为你前面放进去解的一些帧并没有送SPS和PPS.原创 2013-12-26 03:03:41 · 1015 阅读 · 0 评论 -
ffmpeg与x264编码指南
x264是一个 H.264/MPEG4 AVC 编码器,本指南将指导新手如何创建高质量的H.264视频。 对于普通用户通常有两种码率控制模式:crf(Constant Rate Factor)和Two> 50MB*8192(MB转kilobits)/600秒=683>两边编码的例子: >附加信息:ABR(Average Bit Rate)ffmpeg -i i转载 2013-12-26 02:56:05 · 493 阅读 · 0 评论 -
对X264/FFMPEG架构探讨
FFMPEG是目前被应用最广泛的编解码软件库,支持多种流行的编解码器,它是C语言实现的,不仅被集成到各种PC软件,也经常被移植到多种嵌入式设备中。使用面向对象的办法来设想这样一个编解码库,首先让人想到的是构造各种编解码器的类,然后对于它们的抽象基类确定运行数据流的规则,根据算法转换输入输出对象。在实际的代码,将这些编解码器分成encoder/decoder,muxer/demuxer和de转载 2013-12-26 02:54:18 · 451 阅读 · 0 评论 -
Encoding videos in H264
Ffmpeg/x264 (profile High, level 3.0) (latest versions of x264)We have successfully been using ffmpeg/libx264 with two pass encoding using the following commands: infile ="video.avi" tmpfile=转载 2013-12-25 19:45:09 · 647 阅读 · 0 评论 -
decoding_encoding.c
doc/examples/decoding_encoding.c/** Copyright (c) 2001 Fabrice Bellard** Permission is hereby granted, free of charge, to any person obtaining a copy* of this software and associated转载 2013-12-23 00:54:27 · 517 阅读 · 0 评论 -
I/O and Muxing/Demuxing Library
I/O and Muxing/Demuxing LibraryLibavformat (lavf) is a library for dealing with various media container formats. More...Modules Demuxing Demuxers read a media file转载 2013-12-23 00:50:25 · 626 阅读 · 0 评论 -
HTTP Video Delivery — HTTP Pseudo Streaming
HTTP Pseudo Streaming is the second method in HTTP Video Delivery. The method is also based on HTTP progressive download as the first method does, and it makes use of the partial download function转载 2013-12-22 16:14:51 · 4507 阅读 · 0 评论 -
Dynamic Adaptive Streaming over HTTP
This is the third method of the http video delivery. Unlike the first two methods: HTTP Progressive Download and Play, and HTTP Pseudo-streaming, this is a real streaming technology and it’s app转载 2013-12-22 16:11:20 · 651 阅读 · 0 评论 -
ffmpeg解码流程(经典)
FFMPEG解码流程1. 注册所有容器格式和CODEC:av_register_all()2. 打开文件:av_open_input_file()3. 从文件中提取流信息:av_find_stream_info()4. 穷举所有的流,查找其中种类为CODEC_TYPE_VIDEO5. 查找对应的解码器:avcodec_find_decoder()转载 2013-12-01 18:40:51 · 530 阅读 · 0 评论 -
影响延迟的三个重要因素
影响延迟的三个重要因素:1.网络带宽不足延迟越大2.服务器算法缓存越多延迟越大3.编码gop越大延迟越大原创 2013-12-02 11:25:23 · 2227 阅读 · 0 评论 -
TS流的解码过程-ES-PES-DTS-PTS-PCR
TS流的解码过程-ES-PES-DTS-PTS-PCRTS 流解码过程:1. 获取TS中的PAT2. 获取TS中的PMT3. 根据PMT可以知道当前网络中传输的视频(音频)类型(H264),相应的PID,PCR的PID等信息。4. 设置demux 模块的视频Filter 为相应视频的PID和stream type等。5. 从视频Demux F转载 2013-11-13 02:08:40 · 768 阅读 · 0 评论