Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FFmpeg常用命令 #13

Open
jason--liu opened this issue Jul 14, 2019 · 0 comments
Open

FFmpeg常用命令 #13

jason--liu opened this issue Jul 14, 2019 · 0 comments
Labels

Comments

@jason--liu
Copy link
Owner

jason--liu commented Jul 14, 2019

https://alanhou.org/ffmpeg/

ffmpeg -f avfoundation -i 1 -r 30 out.yuv //试用于MAC平台
ffmpeg -f fbdev -framerate 10 -i /dev/fb0 out.avi //out of x server in the command line
-f 指定avfoundation 采集数据
-i 指定输入源,屏幕是1 摄像头0 音频?
-r 指定帧率
yuv是一种原始数据,采集到是什么就是什么,没有压缩

ffmpeg去掉字幕
ffmpeg -i 'input' -c:v copy -c:a copy -sn 'output'
dts音频转ac3音频
ffmpeg -i myvideofile.mkv -map 0 -vcodec copy -scodec copy -acodec ac3 -b:a 640k myvideofilewithAC3.mkv

ffplay
ffplay -s 1920x1988 -pix_fmt yuv420p out.yuv
-s 参数新版本已经提示要被弃用,改用-video_size
-pix_fmt 参数也提示要被弃用,改用-pixel_format
如果花屏可能是YUV像素格式不一致导致
播放yuyv422
ffplay -video_size 720x480 -pix_fmt yuyv422 outputt.yuv
420p转yuyv422
ffmpeg -pix_fmt yuv420p -s 640x480 -i a.yuv -pix_fmt yuyv422 b.yuv

FFmpeg录制音频(Linux)
首先看看Linux支持哪些声卡

➜  ~ cat /proc/asound/cards 
 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xdf328000 irq 129

可以使用如下命令录制音频
ffmpeg -f alsa -i hw:0 out.wav
播放音频
ffplay -ar 441000 -ac 2 -f s16le out.pcm

FFmpeg分解与复用
ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv
-i 输入文件
抽解视频
ffmpeg -i f35.mov -an -vcodec copy out.h264
ffmpeg -i f35.mov -acodec copy -vn out.aac //格式根据实际选择
// -an no audio
// -vn no video

FFmpeg 提取YUV数据
ffmpeg -i input.mp4 -an -c:v rawvideo -pix_fmt yuv420p out.yuv
ffmpeg 提取PCM数据
ffmpeg -i out.mp4 -vn -ar 44100 -ac2 -f s16le out.pcm
-ar audio read 音频采样率
-ac2 audio channel 双声道
-f s16le signed 16 小端
ffplay -ar 441000 -ac 2 -f s16le out.pcm

FFmpeg 滤镜命令
ffmpeg -i in.mov -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy out.mp4
-vf:视频滤镜 crop
in_w-200 in_h-200 宽高-200
-c:v 使用x264编码
-c:a copy 音频之前用什么编码,还用它编回去

FFmpeg 音视频裁剪
ffmpeg -i in.mp4 -ss 00:00:00 -t 10 out.ts
-ss 裁剪起始时间
-t 裁剪持续时间
从某个时间一直剪切到结束
ffmpeg -i test.mp4 -ss 00:00:55 -c copy stiches.mp4
视频合并
ffmpeg -f contat -i inputs.txt out.flv
-i inputs.txt 文件列表
格式为 file filename
file '1.ts'
file '2.ts'

FFmpeg视频转图片
ffmpeg -i in.flv -r 1 -f image2 image-%3d.jpeg
-r 1 帧率 每秒钟转出1张图片
-f
image-%3d.jpeg 输出文件以image开头加3个数字
图片转视频
ffmpeg -i image-%3d.jpeg out.mp4

FFmpeg压缩视频
ffmpeg -i input.mp4 -vcodec libx264 -preset veryslow -crf 20 -c:a copy output.mp4
-preset veryslow t指定的编码速度越慢,获得的压缩效率就越高
crf 压缩参数 0—51,其中0为无损模式,数值越大,画质越差,生成的文件却越小。
从主观上讲,18——28是一个合理的范围。18被认为是视觉无损的(从技术角度上看当然还是有损的),它的输出视频质量和输入视频相当。

FFmpeg直播推/拉流
直播推流
ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName
-c copy 保护音视频
-a codecs 只推音频
-v codecs 只推视频
-f 推出的是什么格式
-re 减慢帧率速度 让帧率与真正的帧率同步,推的时候一般都加
直播拉流
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv
拉流播放
ffplay "rtmp://server/live/streamName live=1"
live=1表示实时流
测试用的直播流地址
http://www.hangge.com/blog/cache/detail_1325.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant