引入:在涉及視頻流生成與保存工作,除了自己手動循環播放視頻生成視頻流之外,還可以借助現在有的一些公開視頻流。
一、在線示例視頻流記錄
- RTMP類
- 廣西衛視: rtmp://58.200.131.2:1935/livetv/gxtv
- 湖南衛視: rtmp://58.200.131.2:1935/livetv/hunantv
- 廣東衛視: rtmp://58.200.131.2:1935/livetv/gdtv
- 東方衛視: rtmp://58.200.131.2:1935/livetv/dftv
- 兵團衛視: rtmp://58.200.131.2:1935/livetv/bttv
- 東南衛視: rtmp://58.200.131.2:1935/livetv/dntv
- RTSP類
-
一個動畫: rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov
二、從視頻流中獲取圖像幀
linux命令:
tcp協議推流需要加上 -rtsp_transport tcp
- ffmpeg -i rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov -r 1/20 -f image2 ./%03d_rtsp.jpg
- ffmpeg -i rtmp://live.hkstv.hk.lxdns.com/live/hks -c copy ./test1.flv 直接保存RTMP視頻流到本地
- ffmpeg -i rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov -vcodec copy -acodec copy ./rtsp1.flv 直接保存RTSP視頻流到本地
命令解釋:
- -i “rtmp.../rtsp...” :后接地址,地址最好用雙引號括起來,如果是rtmp直播流,雙引號里,后面要追加【 live=1】,注意有空格
- -y :如果提示文件已經存在,自動執行y,對已存在文件進行覆蓋
- -t 0.001 :開始截圖時間,seconds or in
hh:mm:ss[.xxx] 如果截圖開始時間越接近篇尾,所花費的時間就會越長
- -vframes :截圖幀數
- -s :圖片寬高比,設置長寬像素比之后,像素可能會比較低
- -ss 1 :延遲1秒后開始,有一個需要引起注意的點,如果-ss 直接放在ffmpeg后,那么截圖的處理時間會極大縮短,直接跳轉到延時n秒后的視頻幀,進行截取圖像
- -f image2 :以圖片格式保存
- -r 1 :幀數,此處為截取一幀, 如果是 -r 1/20 那么就是每
- b-%3d.jpg :格式化文件命名,會生成 b-001.jpg,b-002.jpg 等
三、ffmpeg使用技巧
1 音頻轉換
ffmpeg -i my_audio.wav my_audio.mp3
-i 后為要轉換的音頻文件,my_audio.mp3為目的音頻文件
2 視頻轉換
ffmpeg -i my_video.mpeg -s 500×500 my_video.flv
-i 后為源視頻文件, -s 表示設置目標視頻文件的分辨率 my_video.flv為目的視頻文件
3 從視頻中截取圖片
ffmpeg -i test.mpg image%d.jpg
默認1s截取25張圖片,可以通過-r設置每秒截取的圖片數量
-r fps 設置幀率,也就是每秒截取圖片的數量(默認25)
ffmpeg -i test.mpg -r 1 image%d.jpg
這樣子每1s截取1張圖片
還可以設置截取間隔,起止
-ss 設定時間位置,語法:hh:mm:ss[.xxx]
-t 時長:限制轉碼/捕獲視頻的時間,語法:hh:mm:ss[.xxx]
ffmpeg -i test.mpg -r 25 -ss 00:00:10 -t 00:00:05 images%05d.png
在第10秒開始,以每秒截取25張圖片的速度,截取5秒時長的圖片
4 從視頻中采集音頻
ffmpeg -i video.avi -f mp3 audio.mp3
-f 強制選擇格式
ffmpeg -i video.avi -vn audio.mp3
-vn 取消截取視頻(也就是只輸出音頻文件)
5 創建截屏視頻
ffmpeg -f x11grab -r 25 -s wxga -i :0.0 /tmp/outputFile.mpg
0.0 是你X11 server的屏幕顯示號嗎,和DISPLAY一樣樣的.
此條命令以每秒25幀的速率來截取wxga屏幕視頻,當然這里可以用-s 來設置視頻分辨率,輸出文件是/tmp/outputFile.mpg
6 用圖片制作視頻
ffmpeg -f image2 -i img%d.jpg /tmp/a.mpg
將`img001.jpg’, `img002.jpg'這種順序排列的圖片文件轉制作為視頻
7 從webcam中截取視頻
ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 out.mpg
同時截取音頻和視頻:
ffmpeg -f oss -i /dev/dsp -f video4linux2 -s 320x240 -i /dev/video0 out.mpg
/dev/video0為視頻設備 /dev/dsp為音頻設備
【后半部分轉載自:https://blog.csdn.net/yourijing/article/details/50786758】