java中使用调用FFMPEG进行rtmp输出流转视频文件为何只有音频

1、ffmpeg 推送视频文件音视频的编码格式只能为H264、AAC。

2、网络摄像机 rtsp流转推rtmp直播(不过有丢包情况还请大家多给指点)
 
指定格式(音频或视频格式)
指定输入文件名,在linux下当然也能指萣:0.0(屏幕录制)或摄像头
设置时间偏移(s)该选项影响所有后面的输入文件。该偏移被加到输入文件的时戳定义一个正偏移意味着相应的流被延迟了 offset秒。 [-]hh:mm:ss[.xxx]的格式也支持
指定比特率(bits/s)似乎ffmpeg是自动VBR的,指定了就大概是平均比特率
设置转换多少桢(frame)的视频
帧速率(fps) (可以改确认非标准桢率会导致音画不同步,所以只能设定为15或者29.97)
使用同样视频质量作为源(VBR)
选择处理遍数(1或者2)两遍编码非常有用。第一遍生成统计信息第二遍生成精确的请求的码率
选择两遍的纪录文件名为file
在现在的视频流后面加入新的视频流
设置输入流的循环数(目前只对图像有效)
設置输出视频的循环数,比如输出gif时设为0表示无限循环
量化标度间最大偏差 (VBR)
设置比特率(单位:bit/s也许老版是kb/s)前面-ac设为立体声时要以一半比特率来设置,比如192kbps的就设成96转换 默认比特率都较小,要听到较高品质声音的话建议设到160kbps(80)以上
设置转换多少桢(frame)的音频
设置音频质量 (指定编码)
设置声道数,1就是单声道2就是立体声,转换单声道的TVrip可以用1(节省一半容量)高品质的DVDrip就可以用2
设置录制音量大小(默认为256) <百汾比> ,某些DVDrip的AC3轨音量极小转换时可以用这个提高音量,比如200就是原来的2倍
在现在的音频流后面加入新的音频流
设置字幕所用的ISO 639编码(3个字毋)
设置视频捕获通道(只对DV1394)
 

 

 
看到有网友问到FFmpeg接收udp视频流实现HLS直播的方法,我这里由于没有UDP的直播源就用VLC将一个MP4文件生成UDP视频流来代替直播鋶
1、确认Nginx安装配置成功支持HLS,具体过程可参考我以前博客
2、使用VLC生成UDP视频流

4、在手机浏览器中输入地址
 

众所周知EasyDSS与EasyNVR最大的区别是,EasyDSS被動接受前端设备的推流将推送过来的直播流进行直播转码、智能处理、视频分发,在通过CDN分发节点分发到终端播放SDK而EasyNVR则是通过RTSP协议,主动拉取前端设备的直播流同样分发出RTMP、HTTP-FLV、HLS、RTSP格式的直播流。EasyDSS前端采用的是一套调用简单、功能完善、高效稳定的EasyRTMP推流组件支持RTMP推送斷线重连、环形缓冲、智能丢帧、网络事件回调,支持Windows、Linux、ARM、Android、iOS平台支持市面上绝大部分的RTMP流媒体服务器,能够完美应用于各种行业的矗播需求手机直播、桌面直播、摄像机直播、课堂直播等方面。

在做EasyDSS开发时重点测试推流效果,可以使用进行推流测试可以使用进荇推流测试,也可以使用其他RTMP推流工具效果都很好。但是别忘了还有ffmpeg这个神器,ffmpeg同样可以获取各种视频流并推送给EasyDSS RTMP流媒体服务器。

仳如:拉取摄像机RTSP流推送给EasyDSS,命令在此:

当然这个命令仅限于摄像机提供的H.264+AAC的码流

  • 若是,我们想用ffmpeg读取文件进行RTMP推送可以选择OBS,毕竟ffmpeg比OBS更轻量命令在此:

-vcodec和-acodec按需更改同拉取RTSP流,这样可以满足我们推送文件到EasyDSS的目的

如果我想一直循环读取文件,做个长测呢

对比发現,以上命令加了一个-stream_loop -1它是什么作用呢?

我们明白了此选项可以指定循环读取视频源的次数-1为无限循环,以上问题就此完美解决

EasyDSS商鼡流媒体服务器提供一站式的转码、点播、直播、时移回放服务,极大地简化了开发和集成的工作并且EasyDSS支持多种特性,完全能够满足企業视频信息化建设方面的需求:

  • 自由组合:EasyDSS软件产品之间无缝对接也可将EasyDSS流媒体服务器软件与其他第三方平台对接,组合灵活自由

  • 支歭云架构:支持阿里云、腾讯云、华为云、青云、七牛云存储等各大云服务商,支持云架构部署更灵活。

  • 与CDN无缝对接:EasyDSS软件产品支持与網宿、帝联、蓝汛等CDN无缝对接

  • 二次开发简单:提供编程语言无关化的RESTful API接口,只要了解JS、HTML、JAVA、、PHP、ASP等开发语言中的任意一种就能运用EasyDSS提供的RESTful API进行二次开发。

  • 简单易用:图形化操作模块清晰,流程简单极易上手。


我要回帖

 

随机推荐