2023-02-10 ffmpeg 命令常用使用案例

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

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容