使用FFmpeg转录网络直播流

Posted happydeer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用FFmpeg转录网络直播流相关的知识,希望对你有一定的参考价值。

爱奇艺万能播放器的最新版本增加了一个播放网络流的功能。不过,入口藏在播放器区域的右键菜单里,不太好找:

找来一个直播流URL,比如东森新闻 http://60.199.188.151/HLS/WG_ETTV-N/index.m3u8,试了一下,还不赖呢!

有时候,看到精彩的直播内容,想把某些片段保存到本地。无奈播放器不提供这样的功能。那么,开个小窗给FFmpeg吧,它可以搞定!

命令行如下:

ffmpeg -i http://60.199.188.151/HLS/WG_ETTV-N/index.m3u8 d:\\cap.mp4

这条命令会持续不断地抓取网络视频流,然后写入d:\\cap.mp4文件,直到你按下键盘上的“Q”键才停止。如果你就想录制一小段时间(比如60秒),可以在-i参数前加-t参数来控制,如下:

ffmpeg -t 60 -i http://60.199.188.151/HLS/WG_ETTV-N/index.m3u8 d:\\cap.mp4

上面例子中的直播流是HTTP协议的。FFmpeg还支持其他什么协议吗?这也简单!在控制台输入ffmpeg -protocols便一目了然了。

不禁又一次暗暗佩服:FFmpeg Holy-High!得意

 

Ps. 有位同学提醒道,应该加上-c:v copy -c:a copy(另一种表达方式是-vcodec copy -acodec copy)来避免转码。吾深以为然!这对于实时采集的场景尤为重要!经测试,效果喜人,FFmpeg的CPU占用从之前的80%降到了1%!!!

完整命令行如下:

ffmpeg -i http://60.199.188.151/HLS/WG_ETTV-N/index.m3u8 -c:v copy -c:a copy -bsf:a aac_adtstoasc d:\\cap.mp4

以上是关于使用FFmpeg转录网络直播流的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg怎么样处理网络流

Android使用FFMpeg实现推送视频直播流到服务器

OSX下面用ffmpeg抓取桌面以及摄像头推流进行直播

FFmpeg总结用ffmpeg与nginx实现直播多路流并发播放

FFmpeg总结用ffmpeg进行转格式,Android下播放网络音频流

Android Multimedia框架总结(二十六)利用FFmpeg进行解码直播流