1. 程式人生 > >ffmpeg常用命令

ffmpeg常用命令

1、列舉裝置

ffmpeg -list_devices true -f dshow -i dummy

2、最簡單的抓屏:

ffmpeg -f gdigrab -i desktop out.mpg  

從螢幕的(10,20)點處開始,抓取640x480的螢幕,設定幀率為5:

ffmpeg -f gdigrab -framerate 5 -offset_x 10 -offset_y 20 -video_size 640x480 -i desktop out.mpg

錄麥克風和桌面

E:\\ffmpeg.exe -f gdigrab -framerate 25 -video_size 1366x768 -i desktop -f dshow -i audio="麥克風 (Realtek High Definition Audio)" -vcodec libx264  -preset:v ultrafast -tune:v zerolatency -pix_fmt yuv420p -q:v 1 -ar 22050 -ac 1 -s 1366x768 -y e://out.mp4

gdigrab    http://www.ffmpeg.org/ffmpeg-devices.html  網頁幫助   引數幫助


Win32 GDI-based screen capture device. 

This device allows you to capture a region of the display on Windows. 
There are two options for the input filename: desktop or title=window_title


The first option will capture the entire desktop, or a fixed region of the desktop. The second option will instead capture the contents of a single window, regardless of its position on the screen. 


For example, to grab the entire desktop using ffmpeg: 


ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg


Grab a 640x480 region at position 10,20: 
ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg


Grab the contents of the window named "Calculator" 
ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg

ffmpeg抓屏並推送流到rtmp伺服器中

D:\BaiduYunDownload\ffmpeg-shared\ffmpeg-bin\ffmpeg.exe -f dshow -i video="Integrated Camera" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -s 480x320 -f flv rtmp://192.168.1.124/live/livestream  

//延時比較大,有可能是緩衝區太大的原因

D:\BaiduYunDownload\ffmpeg-shared\ffmpeg-bin\ffplay -max_delay 100000 "rtmp://192.168.1.124/live/livestream live=1"  

//開啟會有點慢,但是沒有延時
D:\BaiduYunDownload\ffmpeg-shared\ffmpeg-bin\ffplay.exe  -fflags nobuffer -f flv  "rtmp://192.168.1.124/live/livestream live=1"

3、rtmpdump 可使用命令

直播流
rtmpdump.exe -o savename.flv -r rtmp://127.0.0.1/live/testlive -v
點播流
rtmpdump.exe -o savename.flv -r rtmp://127.0.0.1/vod/test.flv 
直播需要加-v引數

4、將yuv編碼成h264   

ffmpeg -i  src_480x272.yuv  aa.h264  提示  Output file #0 does not contain any stream
應該是 ffmpeg -s 480x272  -i  src_480x272.yuv  aa.h264    而且必須是放在 -i之前,確定是輸入引數,否則變成輸出引數了


5、如何設定logo

   設定logo

ffmpeg -y -i input.mp4 -vf "movie='D\:\path\logo.png' [logo];[in][logo] overlay=10:10 [out]" output.mp4


    設定磨砂,馬賽克:去除logo

ffmpeg -i JINUSEAN.mp4 -vf delogo=x=72:y=32:w=168:h=86:band=10 output.mp4

6、直播地址:

香港衛視,

rtmp://live.hkstv.hk.lxdns.com/live/hks

美國中文衛視  

rtmp://media3.sinovision.net:1935/live/livestream


7、錄製桌面和攝像頭 實現畫中畫   

ffmpeg -f gdigrab -i desktop  -f dshow -i video="Integrated Camera"  -r 25 -c:v libx264 -preset ultrafast -filter_complex overlay=main_w-overlay_w-10:main_h-overlay_h-10 -acodec mp3 -ar 44100 -ac 2  -t 30  d:/video/desktopAndCamera.mp4  -y  


//設定一下第二個檔案輸出的大小,此時沒有音訊輸入

ffmpeg -f gdigrab -i desktop  -f dshow -i video="Integrated Camera" -filter_complex "[1:v]scale=w=150:h=150:force_original_aspect_ratio=decrease[ckout];[0:v][ckout]overlay=x=W-w-10:y=H-h-10[out]" -map "[out]" -movflags faststart   -t 30  d:/video/desktopAndCamera.mp4  -y

//新增音訊    -map 是用幾個輸出    -map "[out]"相當於輸出的第1個流      -map 2 相當於將第二個輸入作為輸出的第2個流

ffmpeg -f gdigrab -i desktop  -f dshow -i video="Integrated Camera" -f dshow -i audio="External Microphone (Conexant SmartAudio HD)" -filter_complex "[1:v]scale=w=150:h=150:force_original_aspect_ratio=decrease[ckout];[0:v][ckout]overlay=x=W-w-10:y=H-h-10[out]" -map "[out]" -map 2 -movflags faststart -acodec mp3 -ar 44100 -ac 2  -t 30  d:/video/desktopAndCamera.mp4  -y

8、設定混音,多個音訊檔案合併成一個檔案 使用的filter中的 amix

主要是針對於16位的表示大小    

     原理是 將同一點的音訊 相加,得到的就是該點的值            參考 :http://blog.csdn.net/xiaojun111111/article/details/52692077

     ffmpeg.exe -re -i 1234.mp4 -f dshow -i audio=”立體聲混音 (Realtek High Definition ” -filter_complex amix=inputs=2:duration=first:dropout_transition=0 -t 10 out.mp4 -y

   參考: http://blog.csdn.net/xiaojun111111/article/details/52467815

ffmpeg -i d:/video/wangfeng.mp-i d:/video/quwanting.mp-map 0:0  -map 0:1 -map 1:0 -map 1:-copy -programtitle=CCTV1:program_num=1:st=0:st=1-program title=CCTV2:program_num=2:st=2:st=3--f mpegts d:/video/multiProgram.ts

10、合併檔案

ffmpeg -safe 0 -y -f concat -i concat.txt -c copy -strict experimental -f mp4 TEMP_123.mp4

concat.txt 檔案格式:

file 3cac8f76b06d4af69695c3d00ec0795f_h2642000000nero_aac16-1.mp4
file 3cac8f76b06d4af69695c3d00ec0795f_h2642000000nero_aac16-2.mp4
file 3cac8f76b06d4af69695c3d00ec0795f_h2642000000nero_aac16-3.mp4

11、給視訊(無音訊流)新增音訊流:

    ffmpeg -re -i rtmp://onairzb.cdvcloud.com/d5039f/4859cc -f lavfi -i "anullsrc=r=44100:cl=stereo" -vcodec copy -acodec aac -ar 44100 -ac 2 -strict -2 -f flv rtmp://192.168.0.95/live/123456 

    其中ffmpeg 官方文件中 有 Video Source 和 Audio Source, 需要和 -f lavfi  (代表使用虛擬裝置) 

     可以檢視官方文件

12.疊加多張logo:

ffmpeg -i d:/video/wangfeng.mp4 -i d:/video/logo.png -i d:/video/logo.png -filter_complex "overlay=x=10:y=10,overlay=x=W-w-10:y=H-h-10"  d:/video/wangfenglogo.mp4

ffmpeg -i d:/video/wangfeng.mp4 -i d:/video/logo.png -i d:/video/logo.png -filter_complex "[0:v]scale=960:640[sout],[1:v]scale=100:100[logo1],[sout][logo1]overlay=x=10:y=10[lout1],[2:v]scale=100:100[logo2],[lout1][logo2]overlay=x=W-w-30:y=H-h-30"  d:/video/wangfenglogo.mp4

ffmpeg -i d:/video/wangfeng.mp4  -filter_complex "[0:v]scale=960:640[sout],movie='d\:/video/logo.png'[m1],[m1]scale=100:100[logo1],[sout][logo1]overlay=x=10:y=10[lout1],movie='d\:/video/logo.png'[m2],[m2]scale=100:100[logo2],[lout1][logo2]overlay=x=W-w-30:y=H-h-30"  d:/video/wangfenglogo.mp4

12.1新增timeline,logo可以階段顯示

ffmpeg -i d:/video/wangfeng.mp4  -filter_complex "[0:v]scale=960:640[sout],movie='d\:/video/logo.png'[m1],[m1]scale=100:100[logo1],[sout][logo1]overlay=x=10:y=10:enable=between(t\,10.0\,20.0)[lout1],movie='d\:/video/logo.png'[m2],[m2]scale=100:100[logo2],[lout1][logo2]overlay=x=W-w-30:y=H-h-30"  d:/video/wangfenglogo.mp4


12.2 logo使用gif,無限迴圈,使用loop,setpts,shortest,注意window的ffmpeg 卡死有問題

transcode -y -i 'ftp://scott:[email protected]/lxj/1.mp4' -filter_complex "[0:v]scale=640:360[s363],movie=filename=\'ftp://scott:[email protected]/lxj/logo.gif\':loop=0,setpts=N/(FRAME_RATE*TB)[logomovie363_0],[logomovie363_0]scale=100:100[logoscale363_0],[s363][logoscale363_0]overlay=x=10:y=10:shortest=1[out363]" -map [out363] -c:v h264 -b:v 500k -crf 23 -r 25.0 -g 250 -map 0:a -c:a aac -ab 32k -ac 1 -ar 22050  -strict experimental -f mp4 TEMP_text123.mp4

13疊加字幕:

ffmpeg -i d:/video/wangfeng.mp4 -filter_complex [0:v]drawtext="fontfile=simsun.ttc:text='Test Text':x=100:y=50:fontsize=24:[email protected]:box=1:[email protected]"[dt1];[dt1]drawtext="fontfile=simsun.ttf:text='hello world':x=100:y=100:fontsize=24:[email protected]:box=1:[email protected]"[vout]  -map [vout]  d:/video/wangfeng_drawtext.mp4

14.視訊加密:

最新的ffmpeg支援hls_enc_key hls_enc_uri
transcode_has_dash.bak  -timeout -1 -y   -i 'ftp://scott:[email protected]/lxj/1.mp4' -filter_complex "[0:v]scale=640:360[out371]" -map [out371] -c:v h264 -b:v 500k -crf 23 -r 25.0 -g 250 -map 0:a -c:a aac -ab 32k -ac 1 -ar 22050  -strict experimental -f hls -hls_time 10 -hls_segment_filename text132.m3u8_%d.ts -hls_list_size 0 -hls_enc_key encryptionkey128 -hls_enc_key_url http://192.168.0.85/  text132.m3u8

相應引數:
   "extra_param":" -hls_enc 1 -hls_enc_key encryptionkey128 -hls_enc_key_url 'http://192.168.0.85/file.key' ",
   "format":"hls",

   "output_file" : "text143.m3u8"

15.檔案迴圈推流:

ffmpeg迴圈推流,新增genpts,不能copy檔案,時間戳不遞增導致問題

    ffmpeg  -threads 2  -fflags +genpts -stream_loop -1 -re -i wangfeng1.mp4 -c:v h264 -c:a aac -f flv rtmp://192.168.0.95/live/12345

相關推薦

FFMPEG常用命令-格式轉換-持續更新中

ffmpeg是一個強大的工具,在工作者各種格式轉換,編碼,提取視訊中的幀需要用到,記錄下工作中常用的一些ffmpeg命令,持續更新中...   將輸入的infile視訊檔案通過avc編碼成h264的視訊流 ffmpeg -i infile.mp4 -an -vcodec libx264

ffmpeg常用命令總結

提取視訊,不要音訊 ffmpeg -i 2.mp4 -vcodec copy -an test.mp4 提取並轉換格式,推薦 ffmpeg -i 1.mp4 -an 111.avi 提取音訊 ffmpeg -i 2.mp4 -vn -acodec copy 2.aac 提取並轉換格式,推

ffmpeg常用命令-調整視訊顏色

http://help.tmtyum.com/content.php?id=18   1.hue:調整視訊色調、飽和度、亮度 h:色調角度度數(0到360),預設值為0 s:飽和度(-10到10),預設值為1 b:亮度(-10到10),預設值為0 命令格式:ffmpeg -i 源視

ffmpeg 常用命令列(2009.08.20更新)

k歌之王: 整理常用的ffmpeg命令,便於大家查詢。 1. AVI轉FLV ffmpeg -i video_origine.avi -acodec libmp3lame -ab 56K -ar 44100 -b 200K -r 15 -s 320x240 -f flv

ffmpeg常用命令記錄

ffmpeg工具集功能強大,現在記錄其常見操作 轉碼 ffmpeg -i test.mp3 -ab 16k -ac 1 -ar 8000 -f wav test.wav  -ab:位元速率 -ac:通道數 -ar:取樣率 -f:轉碼格式 獲取流資訊 ffprobe -v

ffmpeg常用命令

1、列舉裝置ffmpeg -list_devices true -f dshow -i dummy2、最簡單的抓屏:ffmpeg -f gdigrab -i desktop out.mpg  從螢幕的(10,20)點處開始,抓取640x480的螢幕,設定幀率為5:ffmpeg

FFmpeg 常用命令

1.分離視訊音訊流 ffmpeg -i input_file -vcodec copy -an output_file_video  //分離視訊流 ffmpeg -i input_file -acodec copy -vn output_file_audio  //分離

FFmpeg常用命令記錄(1):錄取螢幕、剪下視訊、將視訊轉化為GIF

Windows錄取螢幕的命令: ffmpeg -f gdigrab -i desktop luping.mpg 剪下視訊的命令: ffmpeg -i luping.mpg -y -ss 00:

ffmpeg 常用命令備忘

1. ffmpeg 實現RGB565 raw 資料轉換為YUV420 raw資料: D:\>ffmpeg.exe -s 640x480 -pix_fmt rgb565le -i D:\test_

ffmpeg 常用命令彙總

ffmpeg非常強大,輕鬆幾條命令就可以完成你的工作。 把darkdoor.[001-100].jpg序列幀和001.mp3音訊檔案利用mpeg4編碼方式合成視訊檔案darkdoor.avi: $ ffmpeg -i 001.mp3 -i darkdoor.%3d.jpg -s 1024x768

ffmpeg 音頻常用命令

prope called .html over XA encoder resp one different ffmpeg的使用方式: ffmpeg [options] [[infile options] -i infile]... {[outfile options] ou

ffmpeg常用基本命令

ef7 cto def ffmpeg 常用 RoCE mage -o 作者 由於作者不習慣該編輯器,只是將本文的截圖貼了出來,詳文見:https://www.yuque.com/docs/share/a2a38a6f-6e82-44de-9d43-266c6bb7824f

ffmpeg常用基本命令(轉)

1.分離視訊音訊流 ffmpeg -i input_file -vcodec copy -an output_file_video  //分離視訊流 ffmpeg -i input_file -acodec copy -vn output_file_audio  /

ffmpeg】視訊編解碼之ffmpeg命令列工具的常用命令彙總

H264視訊轉ts視訊流 ffmpeg -i test.h264 -vcodec copy -f mpegts test.ts H264視訊轉mp4 ffmpeg -i test.h264 -vcodec copy -f mp4 test.mp4 ts視訊轉mp4 ffmpeg

FFmpeg常用推流命令

一、FFmpeg推RTMP流準備工作 首先確保自已已經安裝了nginx + rtmp伺服器。 開啟配置檔案nginx.conf 完成如下配置 nginx配置.1 如果沒有nginx + rtmp伺服器,請閱讀我的另一篇簡書文章Mac搭建nginx+rtmp伺服

ffmpeg AV轉換常用命令

mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -vf scale=720:480,harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:

FFmpeg引數中文詳細解釋和FFmpeg常用基本命令

FFmpeg引數中文詳細解釋 a) 通用選項 -L license -h 幫助 -fromats 顯示可用的格式,編解碼的,協議的... -f fmt 強迫採用格式fmt -I filename 輸入檔案 -y 覆蓋輸出檔案 -t duration 設定紀錄時間 hh:m

ffmpeg常用命令

轉組播流 ffmpeg -re -i /media/1.mpg -r 1800  -c copy -f mpegts udp://239.1.1.1:7000 ffmpeg -re -i ./test.ts -vcodec copy -acodec copy -f mpeg

ffmpeg常用檔案轉換命令集錦

儲存我常用的ffmpeg命令. 都是從各處收集來的.除了常規操作,還有一些特殊的優化. 教程 官方文件 一個教程 Gif轉mp4