原创内容,转载请注明出处: https://www.myzhenai.com.cn/post/2587.html https://www.myzhenai.com/thread-17995-1-1.html
关键词: ffmpeg合并音频 ffmpeg合并视频 ffmpeg剪辑视频 ffmpeg压缩视频 ffmpeg转码 ffmpeg录制桌面 ffmpeg视频加水印
视频演示地址: 链接: https://pan.baidu.com/s/1mibTLDe 密码: e753
什么是ffmpeg?
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OS X等。这个项目最早由Fabrice Bellard发起,2004年至2015年间由Michael Niedermayer主要负责维护。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的”FF”代表”Fast Forward”。多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
ffmpeg是强大的媒体处理软件,是开源的, 很多流行的播放器, 格式转换工具, 压缩处理和编码转换工具都是使用ffmpeg进行的, 很多主流的视频网站, 比如youtube 优酷 搜狐…..都在后台对用户上传的视频进行ffmpeg转换编码处理才进行播放的, 或者进行文件切割.
Linux下ffmpeg使用方法
查询ffmpeg参数 ffmpeg -h 查询本机编解码器 ffmpeg -codecs 查询ffmpeg编译模块 ./configure --help 查询本机设备(windows) ffmpeg.exe -list_devices true -f dshow -i dummy
ffmpeg一键编译脚本: https://www.myzhenai.com.cn/post/2378.html
ffmpeg使用方法: https://www.myzhenai.com.cn/post/1189.html
ffmpeg -i file.avi -i zhangshan.mp3 -vcodec copy -acodec copy filemp3.avi---合并视频和音乐 ffmpeg -y -i test.mp4 -acodec copy -vf "movie=uwsgi.jpg [logo]; [in][logo] overlay=10:10:1 [out]" test2.mp4---视频加水印 overlay=10:10:1,后三个数据表示是距离左边的距离,距离上边的距离,是否透明,1表示透明 #ffmpeg -i long.pfv -f mp2 -vn long.mp3---从视频里提取mp3音乐文件 #ffmpeg -s 1280x1024 -r 25 -f x11grab -i :0.0 -f alsa -ac 2 -ar 44100 -i pulse -qscale 0.01 output.flv #ffmpeg -f alsa -i pulse -f x11grab -r 25 -s 1280x1024 -i :0.0 -acodec pcm_s16le -vcodec libx264 -preset ultrafast -crf 0 output.mkv #ffmpeg -f alsa -i pulse -f x11grab -r 30 -s 1280x1024 -i :0.0 -acodec aac -b:a 1.5M -vcodec libx264 -b:v 75000k -preset ultrafast -crf 0 output.mkv #ffmpeg -video_size 1280x1024 -framerate 30 -f x11grab -i :0.0 -c:v libx264 -qp 0 -preset ultrafast capture.mkv---录制高清视频 #ffmpeg -s 1280x1024 -r 25 -f x11grab -i :0.0 -f alsa -ac 1 -ar 44100 -i pulse -qscale 0.01 output.mp4---录制视频和音频 #ffmpeg -i 01.mp4 -vf scale=640:352 001.mp4---视频压缩 #ffmpeg -i ko.mp3 -vn -y ko.mp2 #ffmpeg -i ko.mp3 ko.mp2---音频转换 #ffmpeg -i daddy.mp4 -metadata title="PSY 2015 song Daddy" -metadata author="PSY" -metadata copyright="https://www.myzhenai.com.cn https://www.myzhenai.com https://www.haikou-china.com https://jiayu.mybabya.com" -metadata comment="https://www.myzhenai.com.cn https://www.myzhenai.com https://www.haikou-china.com https://jiayu.mybabya.com" -y daddy2.mp4 ---添加视频音频的元数据信息,即作者,版权,注释等信息 ffmpeg -i ko.mp3 -f mp2 -acodec mp2 -vn ko.mp2---转换成mp2
ffmpeg -i output.mp4 -vcodec libx264 -acodec aac -b:a 192k -ar 44100 -ac 2 ffmpeg.mp4---视频压缩转换降燥音 #-i output.mp4 要压缩的文件 #-vcodec libx264 要转换的视频编码 #-acodec aac 要转换的音频编码 #-b:a 192k 设置音频比特率 #-b:v 192k 设置视频比特率 #-ar 44100 设置音频采样率 #-ac 2 设置双声道
ffmpeg -i shitaoji.mp3 -i file.mp4 -vcodec h264 -acodec libmp3lame fileout.mp4---合并视频和音乐 #-i file.mp4 这是输入视频 #-i shitaoji.mp3 这是输入mp3 #-vcodec h264 这是指定视频编解码格式 #-acodec libmp3lame 这是指定音频编解码格式 #fileout.mp4 合并后的文件 #如果视频大音频小,那么小的文件要放在前面,不然会不成功.
ffmpeg -i glb.flv -acodec libmp3lame -vn glb.mp3---从视频里提取音频文件 #-i lglb.flv 这是输入文件 #-acodec libmp3lame 这是强制mp3格式 #-vn glb.mp3 -vn参数是禁用视频并生成mp3文件.
ffmpeg -i glb.flv -vcodec libx264 -acodec aac glb.mp4---视频转换械式(转码) #-i glb.flv 输入文件 #-vcodec libx264 指定视频编解码器H264 #-acodec aac 指定音频编解码器
ffmpeg -f alsa -i pulse -f x11grab -r 30 -s 1280x1024 -i :0.0 -acodec aac -b:a 1.5M -vcodec libx264 -b:v 75000k -preset ultrafast -crf 0 output.mp4---桌面录制 ffmpeg -f alsa -f x11grab -r 30 -s 1280x1024 -i :0.0 -acodec aac -b:a 192k -vcodec libx264 -b:v 192k -preset ultrafast -crf 0 output.mp4 #-f alsa 这是指定声卡驱动模式,还有有pcm和oss,但主流的是alsa #-i pulse 这是输入脉冲 #-f x11grab 这是强制桌面,x11是Linux下的一个窗口组件 #-r 30这是设置帧率 #-s 1280x1024这是指定录制窗口大小 #-i :0.0 这好像是指定视频和音频设备的 #-acodec aac 这是指定音频格式 #-b:a 1.5M 这好像是指定音频速率的 #-vcodec libx264 这是指定视频编解码器为H264 #-b:v 75000k 这好像是指定视频速率的 #-presset ultrafast -crf 0 这个好像是某个模式,好像数值越小越清晰.
ffmpeg -i shitaoji.m4a -acodec libmp3lame shitaoji.mp3---音频转换 #-i shitaoji.m4a 输入文件 #-acodec libmp3lame 指定音频编解码器, ffmpeg默认是支持mp3解码,不支持mp3编码的,因为版权的原因,所以需要额外安装libmp3lame依赖库
ffmpeg -i fileout.mp4 -vf scale=640:352 ffile.mp4---视频压缩 ffmpeg -i kjc.mkv -vcodec libx264 -acodec libmp3lame -vf scale=640:352 kjc.mp4 #-i xxx.mp4 输入文件 #-vf 设置视频过滤器 #scale=640:352需要压缩的视步大小 #-vcodec libx264 可以添加这个参数让视频转码为H264,即真正的mp4 也可以做为压缩转码 #-acodec aac 可以添加这个参数让视频的音频编码转换为aac #-acodec libmp3lame 指定音频使用mp3编码
ffplay /home/RucLinux/ffmpeg/shitaoji.m4a ffplay /home/RucLinux/ffmpeg/glb.flv ---播放文件
Windows下的ffmpeg用法
https://ffmpeg.zeranoe.com/builds/
https://ffmpeg.zeranoe.com/builds/win64/external_libs/rtmpdump-20140302-git-79459a2-win64.7z
https://ffmpeg.zeranoe.com/builds/win64/external_libs/x265-20140410-hg-83ccf2f1-win64.7z
https://ffmpeg.zeranoe.com/builds/win64/dev/ffmpeg-20170422-207e6de-win64-dev.zip
https://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20170422-207e6de-win32-static.zip 重要的是这个
https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20170422-207e6de-win64-static.zip 重要的是这个
https://ffmpeg.zeranoe.com/builds/win64/external_libs/frei0r-20130321-git-245bb38-filters-win64.7z
https://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20170422-207e6de-win32-static.zip 重要的是这个
https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20170422-207e6de-win64-static.zip 重要的是这个
根据自己的系统下载上边的文件,然后解压缩,将文件夹重命令为ffmpeg 将文件夹复制到D盘下
D:\ffmpeg\bin\ffplay.exe E:\我们的更路薄[超清版].flv ---播放文件 #D:\ffmpeg\bin\ffplay.exe 是程序路径,这是ffmpeg已经编译过的ffmpeg播放器程序 #E:\我们的更路薄[超清版].flv 这是要播放的文件
D:\ffmpeg\bin\ffmpeg.exe -i E:\我们的更路薄[超清版].flv -vcodec h264 -s 1280x1024 -acodec aac E:\wmdglb.mp4---视频转换(转码) #D:\ffmpeg\bin\ffmpeg.exe 程序路径 #-i E:\我们的更路薄[超清版].flv 输入文件 #-vcodec h264 指定编解码器为H264 #-s 1280x1024 指定转换后的视频窗口大小 不添加这行即原文件大小,或者参考上边那个转换代码也可以 #-acodec aac 指定音频编解码器
D:\ffmpeg\bin\ffmpeg.exe -f gdigrab -i desktop -f dshow -i audio="@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{39AC5D73-D334-4571-91AC-5D163009C0C7}" -vcodec libx264 -qp 20 -acodec mp3 E:\out.mp4---录制桌面,有声音 D:\ffmpeg\bin\ffmpeg.exe -f dshow -i video="screen-capture-recorder" -s 1280x1024 -r 25 -vcodec h264 -f dshow -i audio="virtual-audio-capturer" -acodec aac -qp 20 -ar 44100 -ac 2 -preset ultrafast out.mp4---录制桌面,有声音 D:\ffmpeg\bin\ffmpeg.exe -f gdigrab -i desktop -vcodec h264 -s 1280x1024 E:\out.mp4---录制桌面,没有声音 以上三行都是Windows下录制桌面的命令, 但录制质量比不上Linux下的, 在win10下也不好找到系统设备了,录制声音需要找到系统音频设备 #D:\ffmpeg\bin\ffmpeg.exe 程序路径 #-f gdigrab 好像是windows下的窗口 跟Linux下的x11grab一样. #-i desktop 输入桌面 #-vcodec h264 指定编视频编解码器为H264 #-s 1280x1024 指定录制的窗口大小 #-f dshow 输出设备 #-i audio 这是从指定音频设备输入音频. #@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{39AC5D73-D334-4571-91AC-5D163009C0C7} 这是音频设备 可以用下边的那行命令获取本机设备 #screen-capture-recorder ---视频设备,这个要安装一个软件才能使用这个设备 #virtual-audio-capturer 音频设备,同样需要安装一个软件才能使用这个设备. 安装什么可以搜索这两个关键词.
D:\ffmpeg\bin\ffmpeg.exe -list_devices true -f dshow -i dummy---获取本机视频和音频设备
[dshow @ 03737940] DirectShow video devices (some may be both video and audio devices)
[dshow @ 03737940] Could not enumerate video devices (or none found).
[dshow @ 03737940] DirectShow audio devices
[dshow @ 03737940] "楹﹀厠椋?(High Definition Audio 璁惧)"---麦克风设备 "麦克风 (High Definition Audio 设备)"
[dshow @ 03737940] Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{39AC5D73-D334-4571-91AC-5D163009C0C7}"---音频设备
dummy: Immediate exit requested
windows下的ffmpeg是官方已经编译成exe文件了,所以我不知道它兼容多少, 加上在windows下录制桌面和声音比较麻烦, 这里我就不演示windows下的了
有兴趣的朋友们可以关注我的头条号(龙华仙岛)或微博, 有问题可以询问我一起讨论.
sicnature ---------------------------------------------------------------------
I P 地 址: 3.145.183.207
区 域 位 置: 美国
系 统 信 息:
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普 | 海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
3条评论
FFMpeg无损合并视频的多种方法
方法一:FFmpeg concat 协议
对于 MPEG 格式的视频,可以直接连接:
ffmpeg -i “concat:input1.mpg|input2.mpg|input3.mpg” -c copy output.mpg
对于非 MPEG 格式容器,但是是 MPEG 编码器(H.264、DivX、XviD、MPEG4、MPEG2、AAC、MP2、MP3 等),可以包装进 TS 格式的容器再合并。在新浪视频,有很多视频使用 H.264 编码器,可以采用这个方法
ffmpeg -i input1.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input1.ts
ffmpeg -i input2.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input2.ts
ffmpeg -i input3.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input3.ts
ffmpeg -i “concat:input1.ts|input2.ts|input3.ts” -c copy -bsf:a aac_adtstoasc -movflags +faststart output.mp4
保存 QuickTime/MP4 格式容器的时候,建议加上 -movflags +faststart。这样分享文件给别人的时候可以边下边看。
方法二:FFmpeg concat 分离器
这种方法成功率很高,也是最好的,但是需要 FFmpeg 1.1 以上版本。先创建一个文本文件filelist.txt:
file ‘input1.mkv’
file ‘input2.mkv’
file ‘input3.mkv’
然后:
ffmpeg -f concat -i filelist.txt -c copy output.mkv
注意:使用 FFmpeg concat 分离器时,如果文件名有奇怪的字符,要在 filelist.txt 中转义。
ffmpeg合并视频的命令, 在合并之前,请将需要合并的视频分别转码成一致的编码.
ffmpeg -i concat:”01.mp4|02.mp4″ -c copy updtp.mp4
D:\ffmpeg\bin\ffmpeg.exe -i d.mp4 -vf “transpose=2,transpose=2” dmangshe.mp4 视频180度旋转