ffmpeg 编解码相关笔记

原创 2016年06月01日 13:43:43
pCodecCtx->gop_size = GOP_SIZE;
pCodecCtx->max_b_frames = MAX_B_FRAMES;
pCodecCtx->pix_fmt = AV_PIX_FMT_YUV420P;


av_opt_set(pCodecCtx->priv_data, "preset", "slow", 0);
av_opt_set(pCodecCtx->priv_data, "crf", "35.000", 0);




1.yuv420p 与yv12 的区别 只是uv顺序相反。


2.ffmpeg raw data对其格式:yuv420p 为16,rgb24为1。如果不做对齐可能会出现rgb数据下方有绿边。


3.ffmpeg ffplay 命令
播放rgb或yuv数据
>ffplay -f rawvideo -pixel_format rgb24 -video_size 1920x1080 e:\workspace\encoder\output\test_cff.rgb


从视频中裁剪出jpg
>ffmpeg -i test.264 %04d.jpg


图片格式转换
>ffmpeg -i e:\workspace\encoder\output\pic\jpgs\1.jpg -pix_fmt rgb24 -r 29.970 -y goutput.rgb



//叠加字符
>ffmpeg -y -i 1.mp4 -s 1280*1024 -vcodec libx264 -refs 2 -x264opts keyint=150:mi
n-keyint=15 -vprofile baseline -level 20 -b:v 200k -vf "drawtext=fontfile=msyh.t
tf: text='来源:迅雷':x=100:y=200:fontsize=50:fontcolor=yellow@0.5:shadowy=2" 2.
mp4


ffmpeg -i 1.mp4 -vf "format=yuv444p, drawbox=y=ih/PHI:color=black@0.4:width=iw:height=48:t=max, drawtext=fontfile=msyh.ttf:text='frame %{n}\\: %{pict_type}\\: %@{localtime\:%a %b %d %Y@}':fontcolor=white:fontsize=24:x=(w-tw)/2:y=(h/PHI)+th, format=yuv420p" -c:v libx264 -c:a copy -movflags +faststart output.mp4


>ffmpeg -i 1.mp4 -vf "format=yuv420p, drawbox=y=ih/PHI:color=black@0.4:width=iw:height=48:t=max, drawtext=fontfile=msyh.ttf:text='%@{localtime\:%a %b %d %Y@}':fontcolor=white:fontsize=24:x=(w-tw)/2:y=(h/PHI)+th, format=yuv420p" -c:v libx264 -c:a copy -movflags +faststart output.mp4




ffmpeg -i /f/p/moto-g\ camera/VID_20141225_140557099.mp4 -filter_complex "drawtext=fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='frame %{n}\\: %{pict_type}\\: pts=%{pts \\: hms}': x=100: y=50: fontsize=24: fontcolor=yellow@0.8: box=1: boxcolor=blue@0.9" -c:a copy -c:v libx264 -preset veryfast -crf 16 -x264-params keyint=60 -map 0 foo.mkv


>ffmpeg -i 1.mp4 -vf "drawtext=fontsize=80:fontfile=msyh.ttf:textfile=CREDITS:y=h-20*t" 11.mp4



解码出raw格式 分辨率可调

ffmpeg.exe -i trailer_1080p.mov -s 1280*720 -pixel_format yu
v420p trailer_1080p1.yuv


播放raw格式 
>ffplay.exe -f rawvideo -pixel_format yuv420p -video_size 1280*720 trailer_1280*720p.yuv
版权声明:本文为博主原创文章,未经博主允许不得转载。

ffmpeg实时编码解码部分代码

程序分为编码端和解码端,两端通过tcp  socket通信,编码端一边编码一边将编码后的数据发送给解码端,解码端一边接收数据一边将解码得到的帧显示出来。 代码中的编码端编码的是实时屏幕截图。代码调用...

FFmpeg源代码简单分析:结构体成员管理系统-AVClass

打算写两篇文章记录FFmpeg中和AVOption有关的源代码。AVOption用于在FFmpeg中描述结构体中的成员变量。它最主要的作用可以概括为两个字:“赋值”。一个AVOption结构体包含了变...

FFmpeg的一些关键的数据结构(一)

FFmpeg的一些关键的数据结构(一)        ffmpeg定义的数据结构很有特色:有一些是动态与静态的关系,比如, URLProtocol 和 URLContex t ,AVInputFo...
  • wishfly
  • wishfly
  • 2016年03月29日 18:18
  • 1056

工作中用到的FFmpeg命令

-f dshow -r 25 -s 1280*720 -i video="SA7160 PCI, Analog 01 Capture" -f dshow -ar 48000 -i audio="SA7...
  • dtryl
  • dtryl
  • 2016年02月17日 20:54
  • 463

使用ffmpeg将mp4文件中的h264码流转为raw h264文件格式或ts文件格式

 下面这两条命令行实现文件格式的转变: ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264 ffmpeg -i...

ffmpeg分解视频文件并加密

ffmpeg,可以将视频分解成小块,并根据密钥进行内容加密。首先需要将密钥写入文件video.key。还需要第二个文件,key_info来存储是关键信息文件。它具有以下格式:key URI key f...
  • cnhome
  • cnhome
  • 2017年06月14日 17:31
  • 2185

给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数

给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数。 1.   最基本的算法是,从小到大遍历: for (i = 2 to A -1)          if (i * B > A)...

配置SOIL库,实现纹理加载

SOIL 是一个用于向OpenGL中加载

SceneManager.LoadScene的使用方法

SceneManager.LoadScene的使用方法
  • XYK0318
  • XYK0318
  • 2016年03月17日 09:52
  • 18832

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ffmpeg 编解码相关笔记
举报原因:
原因补充:

(最多只允许输入30个字)