FFmpeg
tiankong19999
当你的才华还撑不起你的野心时,那你就应该静下心来学习!当你的经济还撑不起你的梦想时,那你就应该踏实的去工作!
展开
-
FFmpeg —— MP4转FLV(带关键帧)
我们通过以下命令生成的FLV文件没有快进功能ffmpeg -i input.mp4 output.flv可以通过两种方法来实现第一种不改变原始音视频编码格式,增加参数 -flvflags add_keyframe_index,转换速度快。ffmpeg -i input.mp4 -vcodec copy -acodec copy -flvflags add_keyframe_index output.flv第二种重新指定FLV输出格式的音频编码格式和视频编码格式,转换速度慢。原创 2020-05-18 11:25:09 · 4080 阅读 · 1 评论 -
FFmpeg —— 读取摄像头数据并保存视频为MP4
该程序的实现方式与这边文章类似:FFmpeg —— RTMP推流到流媒体服务器(编码的方式)—— 读取摄像头数据并推流只需要将推流地址改为本地文件名的形式即可。#include <stdio.h>#define __STDC_CONSTANT_MACROSextern "C"{#include "libavcodec/avcodec.h"#include "libavformat/avformat.h"#include "libswscale/swscale.h"原创 2020-05-17 17:19:15 · 13743 阅读 · 0 评论 -
FFmpeg —— RTMP推流到流媒体服务器(编码的方式)—— 读取摄像头数据并推流
流媒体服务器的搭建,可以参考这篇文章centos7+nginx+rtmp+ffmpeg搭建流媒体服务器基于命令行的方式推流可以参考这篇文章FFmpeg —— 屏幕录像和录音并推流(命令行的方式)本篇是基于代码的方式来实现的。读取摄像头数据并推流#include <stdio.h>#define __STDC_CONSTANT_MACROSextern "C"{#include "libavcodec/avcodec.h"#include "libavfor原创 2020-05-17 14:34:29 · 13169 阅读 · 1 评论 -
FFmpeg —— RTMP推流到流媒体服务器(编码的方式)—— 屏幕录像并推流
流媒体服务器的搭建,可以参考这篇文章centos7+nginx+rtmp+ffmpeg搭建流媒体服务器基于命令行的方式推流可以参考这篇文章FFmpeg —— 屏幕录像和录音并推流(命令行的方式)本篇是基于代码的方式来实现的。屏幕录像并推流#include <stdio.h>#define __STDC_CONSTANT_MACROSextern "C"{#include "libavcodec/avcodec.h"#include "libavformat原创 2020-05-17 14:12:30 · 12305 阅读 · 0 评论 -
FFmpeg —— RTMP推流到流媒体服务器(编码的方式)—— 推流本地文件
#include <stdio.h>#define __STDC_CONSTANT_MACROSextern "C"{#include "libavformat/avformat.h"#include "libavutil/mathematics.h"#include "libavutil/time.h"};int main(){ AVFormatContext *ifmtCtx = NULL; AVFormatContext *ofmtCtx = NULL; A.原创 2020-05-14 22:22:53 · 11585 阅读 · 0 评论 -
FFmpeg —— 屏幕录像和录音并推流(命令行的方式)
Windows方法一:dshow首先需要安装一个软件,screen capture recorder编译好的下载地址是:http://sourceforge.net/projects/screencapturer/files/ 安装后才能使用源码地址是:https://github.com/rdp/screen-capture-recorder-to-video-windows-free查看可用的设备:ffmpeg -list_devices true -f dshow -i dum.原创 2020-05-14 12:11:23 · 42359 阅读 · 0 评论 -
可用的直播流地址(持续更新)
目前只找到http直播源RTMP协议直播源RTSP协议直播源HTTP协议直播源CCTV1高清:http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8CCTV3高清:http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8CCTV5高清:http://ivi.bupt.edu.cn/hls/cctv5hd.m3u8CCTV5+高清:http://ivi.bupt.edu.cn/hls/cctv5phd.m3u8CCTV6..原创 2020-05-11 16:01:53 · 134422 阅读 · 1 评论 -
FFmpeg —— librtmp的安装(linux)
安装环境linux版本:CentOS Linux release 7.7.1908 (Core)下载安装(RTMP)进入官网http://rtmpdump.mplayerhq.hu/通过git下载git clone git://git.ffmpeg.org/rtmpdump通过tar包下载http://rtmpdump.mplayerhq.hu/download/编译&安装cd rtmpdumpmakesudo make install...原创 2020-05-11 15:25:12 · 12228 阅读 · 0 评论 -
FFmpeg —— 18.FFmpeg简易播放器的实现——音视频播放(含音视频同步)
视频播放器基本原理解协议将流媒体协议的数据,解析为标准的相应的封装格式数据。视音频在网络上传播的时候,常常采用各种流媒体协议,例如 HTTP,RTMP,或是 MMS 等等。这些协议在传输视音频数据的同时,也会传输一些信令数据。这些信令数据包括对播放的控制(播放,暂停,停止),或者对网络状态的描述等。解协议的过程中会去除掉信令数据而只保留视音频数据。例如,采用 RTMP 协议传输的数据,经过解协议操作后,输出 FLV 格式的数据。解封装将输入的封装格式的数据,分离成为音频流压缩编码数据和视.原创 2020-05-10 21:26:46 · 12931 阅读 · 0 评论 -
FFmpeg —— FFmpeg时间戳详解
1. I帧/P帧/B帧I帧:I帧(Intra-coded picture, 帧内编码帧,常称为关键帧)包含一幅完整的图像信息,属于帧内编码图像,不含运动矢量,在解码时不需要参考其他帧图像。因此在I帧图像处可以切换频道,而不会导致图像丢失或无法解码。I帧图像用于阻止误差的累积和扩散。在闭合式GOP中,每个GOP的第一个帧一定是I帧,且当前GOP的数据不会参考前后GOP的数据。P帧:P帧(Pr...转载 2020-04-30 17:29:28 · 14793 阅读 · 0 评论 -
FFmpeg —— FFmpeg常用结构体介绍
结构体之间的关系FFMPEG中结构体很多。最关键的结构体可以分成以下几类:a)解协议(http,rtsp,rtmp,mms)AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储输入视音频使用的封装格式。每种协议都对应一个URLProtocol结构。(注意:FFMPEG中文件也被当做一种协议...原创 2020-04-28 09:28:13 · 12069 阅读 · 0 评论 -
FFmpeg —— FFmpeg常用API函数介绍
目录1.常用API1.1 通用API1.1.1 av_register_all()——弃用1.1.2 内存的分配和释放(av_malloc()、av_free()等)1.1.3 常见结构体的初始化和销毁(AVFormatContext、AVFrame)1.1.4 avio_open2()1.1.5 avcodec_find_encod...原创 2020-04-27 15:45:28 · 20365 阅读 · 1 评论 -
FFmpeg —— 17.FFmpeg简易播放器的实现——视频播放
视频播放器基本原理解协议将流媒体协议的数据,解析为标准的相应的封装格式数据。视音频在网络上传播的时候,常常采用各种流媒体协议,例如 HTTP,RTMP,或是 MMS 等等。这些协议在传输视音频数据的同时,也会传输一些信令数据。这些信令数据包括对播放的控制(播放,暂停,停止),或者对网络状态的描述等。解协议的过程中会去除掉信令数据而只保留视音频数据。例如,采用 RTMP 协议传输的数据,...原创 2020-04-23 21:06:01 · 14126 阅读 · 0 评论 -
FFmpeg —— 16.FFmpeg简易播放器的实现——音频播放
/* * * FFmpeg+SDL的简易播放器:音频播放器 * */#include <stdio.h>extern "C"{#include "libavcodec/avcodec.h"#include "libavformat/avformat.h"#include "libswresample/swresample.h"#include "SDL2/S...原创 2020-04-23 19:53:56 · 12899 阅读 · 0 评论 -
FFmpeg —— 15.示例程序(九):音频编码器(PCM编码为MP3)
代码和上篇几乎一模一样,只需将输出文件的后缀改为mp3即可。程序源码/** * *本程序实现了音频PCM采样数据编码为压缩码流(MP3,WMA,AAC等)。 * */#include <stdio.h>#define __STDC_CONSTANT_MACROSextern "C"{#include "libavformat/avformat.h"...原创 2020-04-20 20:10:40 · 12392 阅读 · 0 评论 -
FFmpeg —— 14.示例程序(八):音频编码器(PCM编码为AAC)
通过FFmpeg命令生成PCM文件ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -f s16le s16le.pcm该命令的作用是把input.mp4文件转换为s16(声卡支持该格式)、小端格式的PCM文件:s16le.pcm注:-i 表示设定输入流-vn 去除视频信息-ar 音频采样率-ac 音频通道数-f 输出格式播放P...原创 2020-04-20 18:01:18 · 14909 阅读 · 1 评论 -
FFmpeg —— 13.示例程序(七):视频编码器(YUV编码为H265)
此程序和上一篇YUN编码为H264类似,仅仅是修改几个参数程序源码/* * * 本程序实现了YUV像素数据编码为视频码流(H264) * */#include <stdio.h>#define __STDC_CONSTANT_MACROSextern "C"{#include "libavdevice/avdevice.h"#include "lib...原创 2020-04-19 10:58:26 · 13331 阅读 · 1 评论 -
FFmpeg —— 12.示例程序(六):视频编码器(YUV编码为H264)
参考:https://blog.csdn.net/leixiaohua1020/article/details/25430425https://www.jianshu.com/p/5d661ba25ffa流程下面附一张使用FFmpeg编码视频的流程图。使用该流程,不仅可以编码H.264的视频,而且可以编码MPEG4/MPEG2/VP8等等各种FFmpeg支持的视频。图中蓝色背景的函...原创 2020-04-18 22:16:13 · 16250 阅读 · 0 评论 -
FFmpeg —— 11.示例程序(五):音视频复用器(muxer——不涉及编码和解码)
参考:https://blog.csdn.net/leixiaohua1020/article/details/39802913FFmpeg版本:ffmpeg version git-2020-03-30-8d019db简介本文记录一个基于FFmpeg的视音频复用器(Simplest FFmpeg muxer)。视音频复用器(Muxer)即是将视频压缩数据(例如H.264)和音频...原创 2020-04-17 22:05:33 · 12909 阅读 · 0 评论 -
FFmpeg —— 10.示例程序(四):音视频分离(分离为AAC、H264格式)
参考:https://blog.csdn.net/leixiaohua1020/article/details/39802819流程图程序源码/* * * 本程序可以将封装格式中的视频码流数据和音频码流数据分离出来 * */#include <stdio.h>#define __STDC_CONSTANT_MACROSextern "C"{...原创 2020-04-17 16:51:38 · 13288 阅读 · 0 评论 -
FFmpeg —— 9.示例程序(三):音视频分离(分离为PCM、YUV格式)
#include <stdlib.h>#include <stdio.h>#include <unistd.h>extern "C"{//封装格式#include "libavformat/avformat.h"//解码#include "libavcodec/avcodec.h"//缩放#include "libswscale/sws...原创 2020-04-16 16:07:11 · 14074 阅读 · 0 评论 -
FFmpeg —— 8.示例程序(二):屏幕录制并保存为YUV、H264格式文件
屏幕录制的命令行形式可以参考以下链接https://blog.csdn.net/leixiaohua1020/article/details/38284961我们所做的示例程序,说白了,就是通过API程序代码来实现命令行的操作指令。命令行形式设备列表ffmpeg -list_devices true -f dshow -i dummy查看设备选项ffmpeg -l...原创 2020-04-14 15:07:57 · 14604 阅读 · 1 评论 -
FFmpeg —— 7.YUV格式、MP4格式、AVI格式的互换以及播放(命令行的方式)
MP4格式转化为YUV格式ffmpeg -i input.mp4 -s 640x480 -pix_fmt yuv420p output.yuv将input.mp4文件转化为output.yuv备注:-i 表示设定输入流-s 设定画面的宽与高(此项很重要)-pix_fmt 设定的像素格式播放YUV格式的文件ffplay -video_size 640x480 -i...原创 2020-04-13 22:28:12 · 18895 阅读 · 8 评论 -
FFmpeg —— 6.示例程序(一):FFmpeg+SDL2.0 打开Windows摄像头
关于FFmpeg的相关教程,大家可以去参考雷霄骅的相关博文,写的很详细。程序源码/** * 最简单的基于FFmpeg的AVDevice例子(读取摄像头) * * 本程序实现了本地摄像头数据的获取解码和显示。是基于FFmpeg * 的libavdevice类库最简单的例子。通过该例子,可以学习FFmpeg中 * libavdevice类库的使用方法。 * 本程序在Windows...原创 2020-04-12 21:47:47 · 13122 阅读 · 0 评论 -
FFmpeg —— 5.windows+eclipse+FFmpeg环境搭建
保证在Windows环境下已成功安装eclipse,MinGW1. eclipse在Windows的环境搭建(省略)—— 网上有很多教程,这里不做介绍2. MinGW在Windows的配置,此处也省略 —— 参考网上其他教程新建工程打开eclipse,File -> New -> C/C++ Project工程创建之后,编译运行,输出“!!!Hello ...原创 2020-04-09 21:54:16 · 60115 阅读 · 0 评论 -
FFmpeg —— 4.常用命令
命令格式常用参数ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件] 参数选项: (1) -an: 去掉音频 (2) -vn: 去掉视频 (3) ...原创 2020-04-02 21:34:42 · 14257 阅读 · 0 评论 -
FFmpeg —— 3.源码编译安装(Linux带ffplay)
1.下载编译安装SDL如果你需要用到ffplay, 需要再下载SDL的源码http://libsdl.org/release/可以下载最新的稳定版本,笔者下载的是:SDL2-2.0.12.tar.gztar zxvf SDL2-2.0.12.tar.gzcd SDL2-2.0.12.tar.gz./configuremakemake install2.重新...原创 2020-04-01 21:07:23 · 13478 阅读 · 3 评论 -
FFmpeg —— 2.源码编译安装(Linux)
1.下载从GitHub上面下载最新的源码git clone https://github.com/FFmpeg/FFmpeg.git2.配置&安装下载完成之后进入FFmpeg目录执行./configuremakemake install目前在这个版本没有遇到配置,编译问题3.验证如果遇到问题,可以参考以下链接:https://...原创 2020-03-31 11:15:23 · 16219 阅读 · 0 评论 -
FFmpeg —— 1.简单介绍及使用
1.简介FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包...原创 2020-03-30 20:59:01 · 13978 阅读 · 0 评论