ffmpeg命令提取音視頻數據
??保留封裝格式
ffmpeg -i test.mp4 -acodec copy -vn audio.mp4
ffmpeg -i test.mp4 -vcodec copy -an video.mp4
? 提取視頻
保留編碼格式:ffmpeg -i test.mp4 -vcodec copy -an test_copy.h264
強制格式:ffmpeg -i test.mp4 -vcodec libx264 -an test.h264
? 提取音頻
保留編碼格式:ffmpeg -i test.mp4 -acodec copy -vn test.aac
強制格式:ffmpeg -i test.mp4 -acodec libmp3lame -vn test.mp3
ffmpeg命令提取像素格式
? 提取YUV
?提取3秒數據,分辨率和源視頻一致
ffmpeg -i test_1280x720.mp4 -t 3 -pix_fmt yuv420p yuv420p_orig.yuv
?提取3秒數據,分辨率轉為320x240
ffmpeg -i test_1280x720.mp4 -t 3 -pix_fmt yuv420p -s 320x240 yuv420p_320x240.yuv
? 提取RGB
?提取3秒數據,分辨率轉為320x240
ffmpeg -i test.mp4 -t 3 -pix_fmt rgb24 -s 320x240 rgb24_320x240.rgb
?RGB和YUV之間的轉換
ffmpeg -s 320x240 -pix_fmt yuv420p -i yuv420p_320x240.yuv -pix_fmt rgb24 rgb24_320x240_2.rgb
ffmpeg命令提取PCM數據
ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -f s16le 48000_2_s16le.pcm
ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -sample_fmt s16 out_s16.wav
ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -codec:a pcm_s16le out2_s16le.wav
ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -f f32le 48000_2_f32le.pcm
ffmpeg -i test.mp4 -t 10 -vn -ar 48000 -ac 2 -f f32le 48000_2_f32le_2.pcm
ffmpeg命令轉封裝
? 保持編碼格式:
ffmpeg -i test.mp4 -vcodec copy -acodec copy test_copy.ts
ffmpeg -i test.mp4 -codec copy test_copy2.ts
? 改變編碼格式:
ffmpeg -i test.mp4 -vcodec libx265 -acodec libmp3lame out_h265_mp3.mkv
? 修改幀率:
ffmpeg -i test.mp4 -r 15 -codec copy output.mp4 (錯誤命令)
ffmpeg -i test.mp4 -r 15 output2.mp4
? 修改視頻碼率:
ffmpeg -i test.mp4 -b 400k output_b.mkv (此時音頻也被重新編碼)
? 修改視頻碼率:
ffmpeg -i test.mp4 -b:v 400k output_bv.mkv
? 修改音頻碼率:
ffmpeg -i test.mp4 -b:a 192k output_ba.mp4
如果不想重新編碼video,需要加上-vcodec copy
? 修改音視頻碼率:
ffmpeg -i test.mp4 -b:v 400k -b:a 192k output_bva.mp4
? 修改視頻分辨率:
ffmpeg -i test.mp4 -s 480x270 output_480x270.mp4
? 修改音頻采樣率:
ffmpeg -i test.mp4 -ar 44100 output_44100hz.mp4
fmpeg命令圖片和視頻轉換
? 截取一張圖片
ffmpeg -i test.mp4 -y -f image2 -ss 00:00:02 -vframes 1 -s 640x360 test.jpg
ffmpeg -i test.mp4 -y -f image2 -ss 00:00:02 -vframes 1 -s 640x360 test.bmp-i 輸入
-y 覆蓋
-f 格式 (image2 一種格式)
-ss 起始值
-vframes幀 如果大于1那么輸出加%03d test%03d.jpg
-s 格式大小size
? 轉換視頻為圖片(每幀一張圖): (-r:設定幀率)
ffmpeg -i test.mp4 -t 5 -s 640x360 -r 15 frame%03d.jpg
? 圖片轉換為視頻:
ffmpeg -f image2 -i frame%03d.jpg -r 25 video.mp4
? 從視頻中生成GIF圖片
ffmpeg -i test.mp4 -t 5 -r 1 image1.gif
ffmpeg -i test.mp4 -t 5 -r 25 -s 640x360 image2.gif
?將GIF轉化為視頻
ffmpeg -f gif -i image2.gif image2.mp4
ffmpeg命令視頻錄制
??查看可用設備名字:
ffmpeg -list_devices true -f dshow -i dummy? ?(windows:dshow;Mac:avfoundation)
? 查看視頻錄制的可選參數
?ffmpeg -f dshow -list_options true -i video="screen-capture-recorder"
? 查看視頻錄制的可選參數
?ffmpeg -f dshow -list_options true -i audio="virtual-audio-capturer“
?ffmpeg -f dshow -list_options true -i audio="麥克風 (Realtek Audio)"
? 錄制視頻(默認參數)
桌面:ffmpeg -f dshow -i video="screen-capture-recorder" v-out.mp4
攝像頭: ffmpeg -f dshow -i video="Integrated Webcam" -y v-out2.flv (要根據自己攝像頭名稱)
? 錄制聲音(默認參數)
系統聲音:ffmpeg -f dshow -i audio="virtual-audio-capturer" a-out.aac
系統+麥克風聲音:
ffmpeg -f dshow -i audio="麥克風 (Realtek Audio)" -f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=first:dropout_transition=2 a-out2.aac
(amix=inputs 配置輸入的整體樣本數;duration,first:長度取決于第一個文件,longest:長度取決于時間最長文件,shortest:長度取決于時間最短文件;dropout_transition:輸入流結束時用于體積重新規范化的過渡時間;)
? 同時錄制聲音和視頻(默認參數)? (-y覆蓋輸出文件)
ffmpeg -f dshow -i audio="麥克風 (Realtek Audio)" -f dshow -i audio="virtual-
audio-capturer" -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f
dshow -i video="screen-capture-recorder" -y av-out.flv
指定參數錄制音視頻?
? ffmpeg -f dshow -i audio="麥克風 (Realtek Audio)" -f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f dshow -video_size 1920x1080 -framerate 15 -pixel_format yuv420p -i video="screen-capture-recorder" -vcodec h264_qsv -b:v 3M -y av-out.flv? ?(-b:v主要是控制平均碼率)
? ffmpeg -f dshow -i audio="麥克風 (Realtek Audio)" -f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f dshow -i video="screen-capture-recorder" -vcodec h264_qsv -b:v 3M -r 15 -y av-out2.mp4
? ffmpeg -f dshow -i audio="麥克風 (Realtek Audio)" -f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f dshow -framerate 15-pixel_format yuv420p -i video="screen-capture-recorder" -vcodec h264_qsv -b:v 3M -r 15 -y av-out3.mp4 (-r幀率)
ffmpeg命令直播
? 直播拉流
ffplay rtmp://server/live/streamName
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv (對于不是rtmp的協議 -c copy要謹慎使用)
? 直播推流
ffmpeg -re -i out.mp4 -c copy flv rtmp://server/live/streamName(-re,表示按時間戳讀取文件)
? 拉流可用地址
HKS:rtmp://live.hkstv.hk.lxdns.com/live/hks2大熊兔(點播):rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov
CCTV1高清:http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8
ffmpeg -i http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8 -c copy cctv1.ts
ffmpeg -i http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8 cctv1.flv
ffmpeg -i http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8 -acodec aac -vcodec libx264 cctv1-2.flv
CCTV3高清:http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8
CCTV5高清:http://ivi.bupt.edu.cn/hls/cctv5hd.m3u8
CCTV5+高清:http://ivi.bupt.edu.cn/hls/cctv5phd.m3u8
CCTV6高清:http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8