1、ffmpeg 推送视频文件,音视频的编码格式只能为H264、AAC。
ffmpeg -re -i "E:\片源\复仇者联盟720p.mov" -vcodec copy -acodec copy -f flv rtmp:
ffmpeg -re -i "E:\片源\复仇者联盟720p.mov" -vcodec copy -acodec copy -f flv rtmpt:
2、网络摄像机 rtsp流转推rtmp直播(不过有丢包情况,还请大家多给指点)
ffmpeg -i rtsp://ip address/original -crf 30 -preset ultrafast -acodec aac -strict experimental -ar 44100 -ac 2 -b:a 96k -vcodec libx264 -r 25 -b:v 500k -s 640*480 -f flv rtmp://ip address/live/stram
ffmpeg参数说明:
基本选项:
-formats |
输出所有可用格式 |
-f fmt |
指定格式(音频或视频格式) |
-i filename |
指定输入文件名,在linux下当然也能指定:0.0(屏幕录制)或摄像头 |
-y |
覆盖已有文件 |
-t duration |
记录时长为t |
-fs limit_size |
设置文件大小上限 |
-ss time_off |
从指定的时间(s)开始, [-]hh:mm:ss[.xxx]的格式也支持 |
-itsoffset time_off |
设置时间偏移(s),该选项影响所有后面的输入文件。该偏移被加到输入文件的时戳,定义一个正偏移意味着相应的流被延迟了 offset秒。 [-]hh:mm:ss[.xxx]的格式也支持 |
-title string |
标题 |
-timestamp time |
时间戳 |
-author string |
作者 |
-copyright string |
版权信息 |
-comment string |
评论 |
-album string |
album名 |
-v verbose |
与log相关的 |
-target type |
设置目标文件类型("vcd", "svcd", "dvd", "dv", "dv50", "pal-vcd", "ntsc-svcd", ...) |
-dframes number |
设置要记录的帧数 |
视频选项:
-b |
指定比特率(bits/s),似乎ffmpeg是自动VBR的,指定了就大概是平均比特率 |
-bitexact |
使用标准比特率 |
-vb |
指定视频比特率(bits/s) |
-vframes number |
设置转换多少桢(frame)的视频 |
-r rate |
帧速率(fps) (可以改,确认非标准桢率会导致音画不同步,所以只能设定为15或者29.97) |
-s size |
指定分辨率 (320x240) |
-aspect aspect |
设置视频长宽比(4:3, 16:9 or 1.3333, 1.7777) |
-croptop size |
设置顶部切除尺寸(in pixels) |
-cropbottom size |
设置底部切除尺寸(in pixels) |
-cropleft size |
设置左切除尺寸 (in pixels) |
-cropright size |
设置右切除尺寸 (in pixels) |
-padtop size |
设置顶部补齐尺寸(in pixels) |
-padbottom size |
底补齐(in pixels) |
-padleft size |
左补齐(in pixels) |
-padright size |
右补齐(in pixels) |
-padcolor color |
补齐带颜色(000000-FFFFFF) |
-vn |
取消视频 |
-vcodec codec |
强制使用codec编解码方式('copy' to copy stream) |
-sameq |
使用同样视频质量作为源(VBR) |
-pass n |
选择处理遍数(1或者2)。两遍编码非常有用。第一遍生成统计信息,第二遍生成精确的请求的码率 |
-passlogfile file |
选择两遍的纪录文件名为file |
-newvideo |
在现在的视频流后面加入新的视频流 |
高级视频选项
-pix_fmt format |
set pixel format, 'list' as argument shows all the pixel formats supported |
-intra |
仅适用帧内编码 |
-qscale q |
以<数值>质量为基础的VBR,取值0.01-255,约小质量越好 |
-loop_input |
设置输入流的循环数(目前只对图像有效) |
-loop_output |
设置输出视频的循环数,比如输出gif时设为0表示无限循环 |
-g int |
设置图像组大小 |
-cutoff int |
设置截止频率 |
-qmin int |
设定最小质量,与-qmax(设定最大质量)共用,比如-qmin 10 -qmax 31 |
-qmax int |
设定最大质量 |
-qdiff int |
量化标度间最大偏差 (VBR) |
-bf int |
使用frames B 帧,支持mpeg1,mpeg2,mpeg4 |
音频选项:
-ab |
设置比特率(单位:bit/s,也许老版是kb/s)前面-ac设为立体声时要以一半比特率来设置,比如192kbps的就设成96,转换 默认比特率都较小,要听到较高品质声音的话建议设到160kbps(80)以上。 |
-aframes number |
设置转换多少桢(frame)的音频 |
-aq quality |
设置音频质量 (指定编码) |
-ar rate |
设置音频采样率 (单位:Hz),PSP只认24000 |
-ac channels |
设置声道数,1就是单声道,2就是立体声,转换单声道的TVrip可以用1(节省一半容量),高品质的DVDrip就可以用2 |
-an |
取消音频 |
-acodec codec |
指定音频编码('copy' to copy stream) |
-vol volume |
设置录制音量大小(默认为256) <百分比> ,某些DVDrip的AC3轨音量极小,转换时可以用这个提高音量,比如200就是原来的2倍 |
-newaudio |
在现在的音频流后面加入新的音频流 |
字幕选项:
-sn |
取消字幕 |
-scodec codec |
设置字幕编码('copy' to copy stream) |
-newsubtitle |
在当前字幕后新增 |
-slang code |
设置字幕所用的ISO 639编码(3个字母) |
Audio/Video 抓取选项:
-vc channel |
设置视频捕获通道(只对DV1394) |
-tvstd standard |
设 |
转换为flv:
ffmpeg -i test.mp3 -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 test.flv
ffmpeg -i test.wmv -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 test.flv
转换文件格式的同时抓缩微图:
ffmpeg -i "test.avi" -y -f image2 -ss 8 -t 0.001 -s 350x240 'test.jpg'
对已有flv抓图:
ffmpeg -i "test.flv" -y -f image2 -ss 8 -t 0.001 -s 350x240 'test.jpg'
转换为3gp:
ffmpeg -y -i test.mpeg -bitexact -vcodec h263 -b 128 -r 15 -s 176x144 -acodec aac -ac 2 -ar 22500 -ab 24 -f 3gp test.3gp
ffmpeg -y -i test.mpeg -ac 1 -acodec amr_nb -ar 8000 -s 176x144 -b 128 -r 15 test.3gp
分享到:
相关推荐
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