想要使用ffmpeg来完成如下两个功能: 1.视频截图 2.视频分割功能
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了想要使用ffmpeg来完成如下两个功能: 1.视频截图 2.视频分割功能相关的知识,希望对你有一定的参考价值。
想要使用ffmpeg来完成如下两个功能:
1.视频截图
2.视频分割功能(即可以截取当前播放视频中任意一段,然后对选中的视频段进行保存)
我是在.net下用C#语言开发的一个播放器,视频的播放是用的media foundation,都已经实现了,上述两个功能的实现,通过网络搜索,知道使用ffmpeg的命令行工具ffmpeg.exe可以实现。并且我也新手实践了一下,通过实例化一个Process确实可以做到。可是,问题出来了。。。。。
我不想使用命令行,这样子用户在使用时体验性能不好,我想使用自己设计的一个图形界面(用WPF做的),比如通过一个slider,用户只需要托动slider到相应位置,然后点击一个保存按钮便可实现。类似于迅雷看看里面的视频截取功能。那么,我应该如何着手呢?是要看ffmpeg中提供的相关部分的源代码,然后对之进行相应修改吗?如果是这样,我应该如何定位这部分源代码呢?
对于ffmpeg不是特别了解,希望懂的朋友给予一个大概的思路(关于ffmpeg的概念就不用说了,网上哪里都是),好帮助我快速入门,在些先表示感谢了!
我最近也在做ffmpeg+ffserver实现流媒体服务器及时转码发送,
代码的功能只能在官网查。。
国内探讨这方面的人太少了。在谷歌搜国外的FFmpeg论坛也有不少东西。追问
是的,关键是现在我还是不太了解ffmpeg。继续研究官方网站吧,起码权威,呵呵
使用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来完成如下两个功能: 1.视频截图 2.视频分割功能的主要内容,如果未能解决你的问题,请参考以下文章