(原) ffmpeg

原创文章,请后转载,并注明出处。

FFmpeg是一个强大的存在。FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。

以下摘录一些功能,不断更新,像专题一样。

列出设备:ffmpeg -list_devices true -f dshow -i dummy
录制视频:ffmpeg -f dshow -i video=“screen-capture-recorder” v-out.mp4
录制声音:ffmpeg -f dshow -i audio=“virtual-audio-capturer” a-out.aac
同时录制声音和视频: ffmpeg -f dshow -i video=“screen-capture-recorder”:audio=“virtual-audio-capturer” av-out.mp4
查看视频录制的可选参数:ffmpeg -f dshow -list_options true -i video=“screen-capture-recorder”
示例视频录制(依次设置:分辨率 帧率 像素格式):ffmpeg -f dshow -video_size 1680x1050 -framerate 30 -pixel_format yuv420p -i video=“screen-capture-recorder” v-out.mp4
查看音频设备可选参数:ffmpeg -f dshow -list_options true -i audio=virtual-audio-capturer
指定参数录制音视频:ffmpeg -f dshow -video_size 1680x1050 -framerate 30 -pixel_format yuv420p -i video=“screen-capture-recorder”:audio=“virtual-audio-capturer” av-out.mp4

压缩音视频:ffmpeg -f dshow -i video=“screen-capture-recorder”:audio=“Microphone” -vcodec libx264 -crf 0 -preset ultrafast -acodec pcm_s16le output.mkv

Linux下:
从屏幕的左上角(x=100, y=200)的位置,录制分辨率为1024×768的视频。
ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 v-out.mp4

使用ALSA同时录制声音
ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 -f alsa -ac 2 -i hw:0 av-out.mkv

压缩音视频:ffmpeg -framerate 25 -video_size 1024x768 -f x11grab -i :0.0+100,200 -f alsa -ac 2 -i pulse -vcodec libx264 -crf 0 -preset ultrafast -acodec pcm_s16le output.mkv ffmpeg -i output.mkv -acodec … -vcodec … final.mkv


ffmpeg -f gdigrab -i desktop out.mpg 录屏
ffmpeg -f gdigrab -i desktop -f flv rtmp://127.0.0.1:8082/接口 将流推送到rtmp服务器

caff音频批量转换为ogg

for %%a in ("*.caf") do ffmpeg -i "%%a" "%%~na.ogg
pause

mp4导出为png,每秒10帧,分辨率1920x1200
ffmpeg -i test.mp4 -r 10 -f image2 -s 1920x1200 screenshot/%3d.png