国外好的设计网站有哪些,广东网站定制,软件开发报价单,平湖公司做网站查询命令 参数 说明 -version 显示版本。 -formats 显示可用的格式#xff08;包括设备#xff09;。 -demuxers 显示可用的demuxers。 -muxers 显示可用的muxers。 -devices 显示可用的设备。 -codecs 显示libavcodec已知的所有编解码器。 -decoders 显示可用…查询命令 参数 说明 -version 显示版本。 -formats 显示可用的格式包括设备。 -demuxers 显示可用的demuxers。 -muxers 显示可用的muxers。 -devices 显示可用的设备。 -codecs 显示libavcodec已知的所有编解码器。 -decoders 显示可用的解码器。 -encoders 显示所有可用的编码器。 -bsfs 显示可用的比特流filter。 -protocols 显示可用的协议。 -filters 显示可用的libavfilter过滤器。 -pix_fmts 显示可用的像素格式。 -sample_fmts 显示可用的采样格式。 -layouts 显示channel名称和标准channel布局。 -colors 显示识别的颜色名称。 参数 说明 -f fmt输入/输出 强制输入或输出文件格式。 格式通常是自动检测输入文件并从输出文件的文件扩展名中猜测出来所以在大多数情况下这个选项是不需要的。 -i url输入 输入文件的网址 -y全局参数 覆盖输出文件而不询问。 -n全局参数 不要覆盖输出文件如果指定的输出文件已经存在请立即退出。 -c [stream_specifier] codec输入/输出每个流 选择一个编码器当在输出文件之前使用或解码器当在输入文件之前使用时用于一个或多个流。codec 是解码器/编码器的名称或 copy仅输出以指示该流不被重新编码。如ffmpeg -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT -codec [stream_specifier]编解码器输入/输出每个流 同 -c -t duration输入/输出 当用作输入选项在-i之前时限制从输入文件读取的数据的持续时间。当用作输出选项时在输出url之前在持续时间到达持续时间之后停止输出。 -ss位置输入/输出 当用作输入选项时在-i之前在这个输入文件中寻找位置。 请注意在大多数格式中不可能精确搜索因此ffmpeg将在位置之前寻找最近的搜索点。 当转码和-accurate_seek被启用时默认搜索点和位置之间的这个额外的分段将被解码和丢弃。 当进行流式复制或使用-noaccurate_seek时它将被保留。当用作输出选项在输出url之前时解码但丢弃输入直到时间戳到达位置。 -frames [stream_specifier] framecountoutputper-stream 停止在帧计数帧之后写入流。 -filter [stream_specifier] filtergraphoutputper-stream 创建由filtergraph指定的过滤器图并使用它来过滤流。filtergraph是应用于流的filtergraph的描述并且必须具有相同类型的流的单个输入和单个输出。在过滤器图形中输入与标签中的标签相关联标签中的输出与标签相关联。有关filtergraph语法的更多信息请参阅ffmpeg-filters手册。
录制命令
1 录制视频
ffmpeg -f gdigrab -i desktop -r 30 -s 1920x1080 -c:v libx264 -f mp4 -y out.mp4 录屏整个屏幕命令
ffmpeg这是命令行工具的名称调用 FFmpeg 程序。
-f gdigrab指定输入的设备类型为 gdigrab。gdigrab 是一个视频捕获设备用于在 Windows 系统上捕获屏幕内容。
-i desktop指定输入源为桌面。desktop 是一个特殊的输入源表示整个桌面屏幕。
-r 30设置帧率为每秒 30 帧。这是视频播放时每秒钟显示的帧数影响视频的流畅度。
-s 1920x1080设置视频的分辨率为 1920x1080 像素。这是视频的宽度和高度决定了视频的清晰度。
-c:v libx264指定视频编码器为 libx264。libx264 是一个开源的 H.264 编码器用于压缩视频数据。
-f mp4指定输出文件的格式为 MP4。这是文件的封装格式决定了文件的扩展名和兼容性。
-y在覆盖输出文件时不提示确认。如果输出文件 out.mp4 已经存在这个选项会直接覆盖它而不会提示用户确认。
out.mp4输出文件的名称。这是最终生成的视频文件保存在当前目录下。
Ctrl C停止录制。
我用vlc打开我录制的文件就可以看到我录制的页面了。 2录制音频
使用ffmpeg查看设备索引号
Windows下ffmpeg -list_devices true -f dshow -i dummy
macOs下ffmpeg -f avfoundation -list_devices true -i
Linux下v4l2-ctl --list-devices
我的是Windows我列举的结果如下报错结果是在列举设备的时候遇到的错误并不影响。 这样想要捕获视频就可以用下面的命令
ffmpeg -f dshow -i videoHP TrueVision HD Camera output.mp4
或者用名称代替
ffmpeg -f dshow -i videodevice_pnp_\\?\usb#vid_30c9pid_0064mi_00#65040ce600000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global output.mp4
捕获音频就可以用
ffmpeg -f dshow -i audio麦克风阵列 (适用于数字麦克风的英特尔® 智音技术) output.wav 在输入的时候播放个声音录到电脑里
然后在工作目录下就会有输出文件 分解与复用命令
1 格式的转换 将mp4转为flv
ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv
-i 输入文件
-vcodec copy 视频编码处理方式
-acodec copy 音频编码处理方式
举例子将工作目录下的一个mp4转换为mov
ffmpeg -i 1egg.mp4 -vcodec copy -acodec copy outmov.mov 使用ffplay outmov.mov命令可以播放
2 将视频抽取出来 不要音频
ffmpeg -i outmov.mov -an -vcodec copy outonlyv.h264 使用ffplay outonlyv.h264进行播放
3 将音频抽取出来 不要视频
ffmpeg -i outmov.mov -acodec copy -vn outonlya.aac 使用 ffplay outonlya.aac 进行播放 处理原始数据命令
音频的原始数据是pcm视频的原始数据是yuv。
1 Ffmpeg提取yuv数据
ffmpeg -i input.mp4 -an -c:v rawvideo -pixel_format yuv420p out.yuv
-i输入文件
-anaudio no 不处理音频
-c:v rawvideo 将视频转化为原始数据
-pixel_format 像素格式
处理完后用ffplay out.yuv是无法播放的因为原始数据没有宽高值
使用ffplay -f rawvideo -pixel_format yuv420p -video_size 1920x1080 out.yuv播放out.yuv
2 ffmpeg提取pcm数据
ffmpeg -i input.mp4 -f s16le -acodec pcm_s16le outpcm.pcm -i input.mp4 指定输入文件。
-f s16le 指定输出格式为16位小端的PCM数据。
-acodec pcm_s16le 指定音频编解码器使用PCM 16位小端格式。
outpcm.pcm 是输出文件的名称。 使用ffplay播放ffplay -f s16le -ar 44100 outpcm.pcm
-f s16le 指定输入文件格式为16位小端的PCM数据。
-ar 44100 指定音频的采样率例如44100Hz这应该与原始音频文件的采样率相匹配。 滤镜命令
音视频的处理流程
输入文件----解封装----编码数据包----解码----解码数据帧----编码----编码数据包----封装---输出文件 滤镜的处理流程
解码数据帧---------filter过滤----过滤后的数据帧------编码----编码数据包 1 缩放ffmpeg -i input.mp4 -vf scalew:h output.mp4
·-vf 表示滤镜选项 scale是滤镜命令
·w:宽 h:高
2 旋转ffmpeg -i input.mp4 -vf transpose1 output.mp4
·transpose1 顺时针旋转90° 0顺时针270° 2逆时针旋转90° 3逆时针270°
3 模糊命令
ffmpeg -i 1egg.mp4 -vf boxblur10:10 output1.mp4
·Boxblurr:p r模糊半径 p模糊程度 3 裁剪视频
ffmpeg -i input.mp4 -vf cropw:h:x:y output.mp4 · w宽度
· h高度
· x裁剪区域左上角的横坐标
· y裁剪区域左上角的纵坐标 旋转视频
ffmpeg -i input.mp4 -vf transpose1 output.mp4
· transpose1顺时针旋转 90 度
· transpose2逆时针旋转 90 度
· transpose0水平翻转
· transpose3垂直翻转
裁剪与合并命令
裁剪与合并是一种特殊的滤镜命令
1 Windows下裁剪视频
ffmpeg -i input.mp4 -ss 00:00:02 -t 00:00:03 -filter:v crop200:150:50:20 cropvideo.mp4
-i 输入文件
-ss 设置视频开始的时间
-t 裁剪视频持续的时间
filter:v cropw:h:x:y 指定裁剪区域 w是宽 h是高 x y是裁剪区域的左上角坐标
cropvideo.mp4 输出文件 使用ffplay cropvideo.mp4 播放视频
2 Windows下合并视频
·创建一个包含所有需要合并的视频文件列表的文本文件 格式如下 ·使用命令合并
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
视频与图片互转命令
ffmpeg -i input_video.mp4 -ss 00:00:03 -vframes 1 output_image.jpg
-ss 开始时间
- vframe 1 提取一帧
ffmpeg -i input_video.mp4 -vf fps0.5 output_%03d.jpg
fps0.5 一秒钟0.5帧 即每2秒钟提取一帧
output_%03d.jpg 是输出文件的格式%03d 会被替换为从001开始的数字
输出的图片就是这样的 直播相关命令
1 推本地视频流到服务
ffmpeg -re -i input.mp4 -c copy -f flv rtmp://server/live/streamName
·-re按时间戳读取文件
·-c copy使用原始编码
·-f flv指定输出格式为FLV 后面跟的是一个rtmp服务地址
2 推桌面流到rtmp服务器
ffmpeg -f gdigrab -i desktop -f dshow -i audio麦克风 (Realtek(R) Audio) -r 20 -vcodec libx264 -preset ultrafast -acodec aac -ac 2 -ar 44100 -ab 128k -pix_fmt yuv420p -f flv rtmp://live-push.bilivideo.com/live-bvc/?streamnamelive_1805854332_79717982key123456789876543211472583695schedulertmppflag1
·-f gdigrab使用gdigrab进行屏幕捕获
·-i desktop指定桌面作为输入
·-f dshow -i audio麦克风 (Realtek(R) Audio)指定音频输入设备
·-r 20帧率为20帧/秒
·-vcodec libx264使用H.264编码
·-preset ultrafast编码预设为ultrafast
·-acodec aac使用AAC编码音频
·-ac 2音频通道数为2
·-ar 44100音频采样率为44100Hz
·-ab 128k音频比特率为128kbps
·-pix_fmt yuv420p像素格式为yuv420p
·-f flv输出格式为FLV 6
3 拉流并录制
ffmpeg -i rtmp://server/live/streamName -c copy output.flv
4 拉流并播放
ffplay rtmp://server/live/streamName