ffmpeg的使用

ffmpeg的使用,及发送媒体流的一些简单介绍

在之前的文章谈过对ffmpeg的编译。这里谈谈ffmpeg的最简单的使用。windows

ffmpeg使用语法:网络

ffmpeg [[options][`-i' input_file]]... {[options] output_file}...ide

最简单的使用:ffmpeg –i test_mp4.mp4 test_mpg.mpg (将输入的mp4容器格式的文件转换成mpg格式文件)工具

我在作一些机器人控制实验时经常会获得不少的jpg格式的文件,将这些文件改为连续的名称,例如test_jpg00001, test_jpg00002等等,而后能够经过ffmpeg生成一个视频文件,这会很方便演示,例如: 
  ffmpeg -r 15 -b 1800 -i test_jpg00%03d.jpg test_mp4.mp4 (这里,-r 表明fps 设置帧频;–b 表明bitrate 设置比特率; test_jpg00%03d.jpg中%03d表明最后三位数字)测试

作实验时,直接经过摄像头能够获得raw picture(也就是YUV或RGB文件),这时也能够经过ffmpeg将它们转换成mpg或任意容器格式。例如:ffmpeg -s 320*240 -i test_yuv.yuv test_mpg.mpg (这里请注意在写入输入文件以前,必须给ffmpeg传入帧大小,也就是经过 –s 来设置帧大小)。固然了,你也能够将例如mpg格式的文件转换成YUV文件,即,ffmpeg -i test_mpg.mpg test_yuv.yuv。 
 spa

除了转换格式ffmpeg还能够作更多的事,例如发送媒体流,经过rtp协议,能够输入如下的命令:3d

ffmpeg -fflags +genpts -re -i test.mpg -vcodec copy -an -f rtp rtp://127.0.0.1:10000 -vn -acodec copy -f rtp rtp://127.0.0.1:20000 -newaudiocode

其中,-re 表明本地帧频读数据;-an 表明不使能音频纪录;127.0.0.1也就是本地回环地址,咱们经常使用它来测试本机的网络配置,经过PING127.0.0.1来检测本机的网卡和IP协议;固然咱们还可使用它来代替SERVER的IP地址,这样程序就能够在同一台机器上运行,全部的SERVER的资源就能够装在本机,咱们程序就能够运行。orm

使用ffmpeg发送了媒体流后,咱们能够在写字板里写一个SDP文件(附注:文件的后缀也是.sdp),例如:视频

v=0 
  o=- 0 0 IN IPV4 127.0.0.1 
  t=0 0 
  s=No Name  
  a=tool:libavformat 52.23.1 
  m=video 10000 RTP/AVP 32 
  c=IN IP4 127.0.0.1 
  b=AS:104857 
  m=audio 20000 RTP/AVP 14 
  c=IN IP4 127.0.0.1 
  b=AS:64

而后经过vlc就打开这个sdp文件,就能够播放咱们发送的媒体流了。

#####    #####

谈到了媒体流的发送,我想继续延伸聊聊:咱们也可使用之前介绍过的LIVE555.COM提供的LIVE555 Media Server,来发送媒体流,很简单:能够直接下载live555MediaServer.exe,而后输入: “live555MediaServer 你的文件”,例如live555MediaServer D:\test.mpg。媒体流就发送了。而后可使用vlc来播放,vlc rtsp://本机IP/文件名(附注:在Window里经过ipconfig能够看本机IP), 例如 vlc rtsp://131.***.**.101/D:\test.mpg。

结语:播放媒体流使用vlc或一些其余的工具就在GUI里能够简单的执行了,这篇文章最后一部分是但愿给读者提供一些思路,例如使用ffmpeg,LIVE555发送,并使用不一样的发送方式和接受方式。

相关文章
相关标签/搜索