ffmpeg -re -i /home/lee/video.mp4 -vcodec copy -acodec copy -b:v 800k -b:a 32k -f flv rtmp://localhost/videotest
这里有好几个参数,
-re : 表示使用文件的原始帧率进行读取,因为ffmpeg读取视频帧的速度很快,如果不使用这个参数,ffmpeg可以在很短时间就把video.mp4中的视频帧全部读取完并进行推流,这样就无法体现出视频播放的效果了。官方文档中对这个参数的解释是:
[-re (input)
Read input at native frame rate. Mainly used to simulate a grab device, or live input stream (e.g. when reading from a file). Should not be used with actual grab devices or live input streams (where it can cause packet loss). By default ffmpeg attempts to read the input(s) as fast as possible. This option will slow down the reading of the input(s) to the native frame rate of the input(s). It is useful for real-time output (e.g. live streaming).
作者:PaperFish
链接:https://www.jianshu.com/p/06c2025edcd3
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。]
-i :这个参数表示输入 ,后面/home/lee/video.mp4 就是输入文件。
-vcodec copy : -vcodec表示使用的视频编解码器 ,前缀v表示video。后面紧跟的copy 表示复制使用源文件的视频编解码器,比如原文件的编解码器(codec)是h264,则这里就使用h264。
-acodec copy : -acodec表示使用的音频编解码器,前缀a表示audio。后面的copy 表示使用源文件的音频编解码器。
-b:v 800k : -b:v表示视频的比特率(bitrate) ,为800k。
-b:a 32k : 表示音频的比特率为32k。
-f flv : -f表示format ,就是强制输出格式为flv,这一步其实也叫封装(mux),封装要做的事就是把视频和音频混合在一起,进行同步。紧跟在后面的rtmp://localhost/videotest 表示输出的"文件名",这个文件名可以是一个本地的文件,也可以指定为rtmp流媒体地址。指定为rtmp流媒体地址后,则ffmpeg就可以进行推流。
其中输出了一些源文件的信息。最下面的是一些帧数据,下面这些帧数据会一直输出直到视频推送完毕。
打开新的命令行,输入:
ffplay rtmp://localhost/videotest
表示使用ffplay 来播放指定流媒体文件。ffplay 是ffmpeg 中自带的媒体播放程序。然后就可以看到下面的视频了
分享到:
相关推荐
ffmpeg 从Nginx拉取rtmp流,然后通过rtmp推流地址,推流到另一个rtmp服务器。文为linux 源码,需要在linux编译。编译makefile自行编写。文件源码已在生产环境使用,可以正常拉取、推送rtmp视频流
在“FFMPEG USB摄像头RTMP推流.zip”这个压缩包中,主要涉及到的是利用FFmpeg通过USB摄像头进行视频采集,并通过RTMP协议将H264编码的视频流推送到服务器的过程。 首先,我们需要理解FFmpeg如何与USB摄像头交互。在...
一份可以直接将本地视频推送到服务器的推流源代码, 是学习推流的很好的资料, 代码基于ffmpeg rtmp推流, 采用nginx+rtmp module搭建本地流媒体服务器
Android ffmpeg rtmp stream推和收,基于雷大师的代码,简单示例。NDK基于最新的10 推有点取巧,,但是抛砖引玉,如想自己处理可以研究。可借鉴雷大师代码,也可以看看ffmpeg如何抛出错误。 播也有点取巧,网络全丢...
QT+FFMPEG技术结合,可以实现从RTMP服务器接收裸H264流并实时播放的功能。在本文中,我们将深入探讨这个话题,讲解如何使用这两种强大的工具来完成所述的任务。 首先,让我们了解一下QT(Qt)框架。QT是Trolltech...
在本文中,我们将深入探讨如何使用Qt框架与FFmpeg库来构建一个功能完善的RTMP流媒体播放器。首先,我们要了解这两个关键组件的作用及其在播放器开发中的角色。 **Qt框架** 是一个跨平台的应用程序开发框架,用C++...
在本文中,我们将深入探讨如何使用FFmpeg实现一个最简单的基于RTMP(Real-Time Messaging Protocol)的推流器,这允许你将本地视频内容实时推送到流媒体服务器,如YouTube Live、Twitch等。 首先,让我们理解RTMP...
在C#中使用FFmpeg API进行开发,可以实现对多媒体数据的高效处理,例如拉取RTMP流并播放。下面将详细介绍如何在C#中使用FFmpeg API来实现这个功能。 首先,你需要在项目中引入FFmpeg的C#绑定库,这通常通过NuGet包...
在本教程中,我们将详细讲解如何在Windows环境下,使用MSYS2 MinGW 64-bit编译FFmpeg,使其支持H265编码和RTMP推流。 一、安装MSYS2 MinGW 64-bit 1. 首先,从MSYS2官方网站下载最新版本的MSYS2安装程序。 2. 安装...
在本案例中,"ffmpeg-rtmp-h.265-all.tar.gz" 是一个针对CentOS 7系统编译的FFmpeg软件包,特别优化以支持H.265(HEVC)编码和RTMP推流功能。这个压缩包的创建者可能已经完成了所有必要的配置、编译和安装步骤,以便...
在Android上实现RTMP直播,需要使用支持该协议的库,如librtmp或FFmpeg。开发人员需要构建一个流媒体服务器,接收并处理来自移动端的RTMP流,同时客户端也需要一个能够发送RTMP数据的播放器。实现RTMP直播的关键在于...
FFmpeg-RTMP 是一个基于 FFmpeg 工具集的扩展版本,特别针对RTMP(Real-Time Messaging Protocol)协议进行了优化。FFmpeg 是一个开源的跨平台多媒体处理框架,能够处理音频、视频的编码、解码、转换和流化等多种...
在“ffmpeg的h264推流rtmp”这个主题中,我们将深入探讨如何使用FFmpeg将H264编码的视频流通过RTMP协议推送到服务器。 H264是一种高效的视频编码标准,广泛应用于高清视频传输和存储,因为它可以在较低带宽下提供高...
【Android FFmpeg with RTMP Master】是一个开源项目,专注于在Android平台上使用FFmpeg库实现实时流媒体到RTMP服务器。这个项目对于开发者来说是一个宝贵的资源,它展示了如何在Android应用中集成FFmpeg来处理音...
本资源提供了将视频通过FFmpeg推流到nginx RTMP服务的相关组件和配置。 首先,FFmpeg的使用涉及到了音视频的编码和封装。在本地文件推流的过程中,FFmpeg会读取视频文件,对其进行解码(如果需要),再重新编码为...
在本文中,我们将深入探讨FFmpeg如何支持H.265(也称为HEVC)编码的RTMP推流,以及如何在64位系统上使用此功能。 H.265是新一代的视频编码标准,相比前一代的H.264,它能在相同的画质下显著减少视频文件的大小,这...
在你提供的资料中,`ffmpeg-3.4.8-rtmp-hevc-src-linux.zip` 是一个针对Linux平台的FFmpeg源码包,已经过修改以支持RTMP协议下的H265(HEVC)编码视频的推流和拉流。这意味着你可以使用这个源码构建适用于你的特定...
本篇文章将详细探讨如何将RTMP流转化为MP4或FLV格式的视频,以及相关的技术实现,包括librtmp、ffmpeg和mp4v2库。 首先,让我们来理解RTMP协议。RTMP是一种专为实时数据传输设计的协议,主要用于音频、视频数据的...
这是在windows下使用QT+FFMEG设计的拉流软件,可以拉取流媒体的视频和音频数据进行播放。 源码地址:https://blog.csdn.net/xiaolong1126626497/article/details/105412560?utm_source=app