图片格式转换
jpg, bmp到yuv
ffmpeg -i image.jpg -pix_fmt yuv420p image.yuv
yuv到jpg(单张图片)
ffmpeg -s 1024x768 -i image.yuv image.jpg
jpg到nv12
ffmpeg -i image.jpg -f rawvideo -pix_fmt nv12 image0.nv12
播放视频
播放yuv
ffplay -f rawvideo -video_size 1024x768 video.yuv
播放nv12
ffplay -s 1920x1080 -pix_fmt nv12 -f rawvideo image0.nv12
下采样
下采样mp4
ffmpeg -i orig.mp4 -vf scale=1920:1080 smaller.mp4
下采样yuv
ffmpeg -s 1920x1080 -pix_fmt yuv420p -i image0.yuv -f rawvideo -s 960x540 image0_1.yuv
一般ffmpeg都是8bit的编解码器,如果要下采样10bit的yuv,需要将ffmpeg编译为10bit的编码器
采集,编码,封装,推流
参考雷霄骅的博客:https://blog.csdn.net/leixiaohua1020/article/details/38283297 , https://blog.csdn.net/leixiaohua1020/article/details/38284961(博客非常好,音视频领域力荐)
#列出设备,-f dshow表示列出所有支持direct show的设备,-i dummy表示直接列出所有设备
ffmpeg -list_devices true -f dshow -i dummy
#保存视频流到本地,-f dshow表述使用哦dshow方式采集,-i "camera name"表示输入源的名字,可以由上一部列出,-vcodec表示编码该视频使用的编码器,最后的mp4为保存本地文件的名字
ffmpeg -f dshow -i "camera name" -vcodec libx264 videoname.mp4