ffmpeg
Ternence_Hsu
专注于音视频处理和AI技术领域,开源分享,不忘初心,追求卓越,努力做一个会发光的人!
展开
-
ffmpeg转码命令
【代码】ffmpeg转码命令。原创 2023-07-28 11:28:42 · 314 阅读 · 0 评论 -
ffmpeg mp4 加解密
【代码】ffmpeg mp4 加解密。原创 2023-06-20 15:36:01 · 664 阅读 · 0 评论 -
ffmpeg 处理VR视频
ffmpeg处理vr视频,360视频,全景视频原创 2023-05-10 15:57:36 · 739 阅读 · 1 评论 -
5种方式判断mp4的moov的位置
如果判断mp4视频中 moov box 的位置,在数据流的前面还是后面原创 2022-11-08 23:09:40 · 2760 阅读 · 0 评论 -
ffmpeg drawtext 添加文本水印
API 参考:http://ffmpeg.org/ffmpeg-all.html#drawtext-1 参考 drawtext 的功能实现设置相关的值就可以。demo1 :实现添加。原创 2022-08-04 19:54:19 · 463 阅读 · 0 评论 -
rtmp支持h265推流
The VideoTagHeader contains video-specific metadata.原创 2022-07-06 14:53:22 · 586 阅读 · 0 评论 -
视频编码 open-gop 与 close-gop 区别
定义IDR帧是h26x编码中特殊的I帧,IDR后的任何帧都可以去参考IDR前面的帧open-gop序列帧的最后的2个B帧会向后参考I帧来实现冗余close-gop转码参考ffmpeg -y -i Haunted_1080p.mp4 -x264-params keyint=60:min-keyint=60:scenecut=0:bframes=2:b-adapt=2:ref=2:open-gop=0 Haunted_closed2.mp4ffmpeg -y -i Haunted_1080p.mp原创 2022-05-31 16:17:06 · 450 阅读 · 0 评论 -
ffmpeg常用命令
ffmpeg 常用参数ffprobe 常用参数原创 2022-04-22 10:25:49 · 3822 阅读 · 0 评论 -
FFmpeg CENC加密mp4文件
https://www.jianshu.com/p/ea0761f6aa04原创 2022-04-15 14:20:43 · 2443 阅读 · 0 评论 -
ffmpeg 添加 sei 编码信息和解析
ffmpeg -i input.h264 -c:v copy -bsf:v h264_metadata=sei_user_data='086f3693-b6b3-4f2c-9653-21492feee5b8+hello' sei.h264ffmpeg -i intput.h265 -vf showinfo a.mp4原创 2022-04-13 16:43:05 · 4787 阅读 · 2 评论 -
ffmpeg把多个文件concat拼接
参考:https://www.yukapril.com/2020/05/31/mp4-combine.html原创 2022-04-11 14:32:13 · 3917 阅读 · 0 评论 -
ffmpeg视频添加meta信息
添加meta信息:ffmpeg -i input.mp4 -c copy -metadata:g video_id_user=“38746f372ca23a725e94c71b0f682efb” -movflags use_metadata_tags output.mp4 -yffmpeg -i input.mp4 -c copy -metadata:g video_id_user="38746f372ca23a725e94c71b0f682efb" -movflags use_metadata_ta原创 2022-03-28 15:42:26 · 3051 阅读 · 0 评论 -
h264_nvenc GPU硬件编码与硬件加速
参考:https://developer.nvidia.com/blog/nvidia-ffmpeg-transcoding-guide/https://developer.nvidia.com/zh-cn/blog/nvidia-ffmpeg-transcoding-guide/编译参考:./configure --enable-cuda --enable-cuvid --enable-nvdec --enable-nvenc --enable-nonfree --enable-libnpp --原创 2021-05-18 13:54:53 · 1830 阅读 · 0 评论 -
ffmpeg 竖屏转横屏 补黑边
参考ffmpeg -i input.mp4 -vf ‘scale=-1:720,pad=1280:720:(1280-iw)/2:0:black’ -c:v libx264 -crf 21 -preset veryfast -aspect 16:9 -c:a copy -f mp4 output.mp4 -yffmpeg -i input.mp4 -vf 'scale=-1:720,pad=1280:720:(1280-iw)/2:0:black' -c:v libx264 -crf 21 -pre原创 2021-01-11 02:40:53 · 2896 阅读 · 1 评论 -
ffmpeg设置视频 tbr、tbn、tbc
时间基相关的定义tbr 表示帧率,该参数倾向于一个基准,往往tbr跟fps相同。(the time base in AVStream that has come from the container)tbn 表示视频流 timebase(时间基准),比如ts流的timebase 为90000,flv格式视频流timebase为1000 (the time base in AVCodecContext for the codec used for a particular stream)tbc 表示原创 2020-11-15 16:18:05 · 7279 阅读 · 1 评论 -
pyav安装编译失败,找不到函数依赖
安装pyav错误信息如下: src/av/sidedata/sidedata.c: In function '__pyx_pf_2av_8sidedata_8sidedata_8SideData_2__repr__': src/av/sidedata/sidedata.c:2717:46: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] __pyx_t_5 = __Pyx_PyIn原创 2020-11-13 17:59:36 · 751 阅读 · 0 评论 -
ffmpeg设置视频参数DAR,SAR
PAR、DAR、SAR 基本概念FFmpeg中的视频参数 SAR,PAR,DAR, 从宏观上描述一个视频轮如何被播放器正确显示。在不同的文档中,通常对这三个参数有不同的表述。但是,均指代同一事物。首先来看解释:PAR - pixel aspect ratio,单个像素的宽高比,大多数情况像素宽高比为1:1,也就是一个正方形像素,如果不是1:1, 则该像素可以理解为长方形像素。常用的PAR比率有(1:1,10:11, 40:33, 16:11, 12:11 )DAR - display aspect r原创 2020-09-26 12:47:08 · 7667 阅读 · 1 评论 -
ffmpeg 硬压字幕的实现
常用的字幕格式webvtt、ass、srt硬压字幕参数ffmpeg -i “imput.mp4” -lavfi “subtitles=subtitles.srt:force_style=‘Alignment=0,OutlineColour=&H100000000,BorderStyle=3,Outline=1,Shadow=0,Fontsize=18,MarginL=5,MarginV=25’” -crf 1 -c:a copy “output.mp4”ffmpeg -i "imput.m原创 2020-09-06 21:27:27 · 8510 阅读 · 3 评论 -
Protocol ‘https‘ not on whitelist ‘file,crypto‘!
问题转码m3u8视频的时候,报输入协议没有在白名单内:“Protocol ‘https’ not on whitelist ‘file,crypto’!”修复更新容器协议白名单: -protocol_whitelist “file,http,https,tcp,tls”示例:ffmpeg -protocol_whitelist “file,http,https,tcp,tls” -t 80 -i test.m3u8 -c copy test.mp4...原创 2020-08-19 18:19:41 · 5365 阅读 · 2 评论 -
Could not find tag for codec subrip in stream #2, codec not currently supported in container
ffmpeg 添加软字幕失败错误信息如下:Input #1, srt, from '/Users/bytedance/Downloads/Little.Women.2019.1080p.BluRay.x264.DTS-HD.MA.5.1-FGT/Little.Women.2019.1080p.BluRay.x264.DTS-HD.MA.5.1-FGT.英文.srt': Duration: N/A, bitrate: N/A Stream #1:0: Subtitle: subrip[mp4原创 2020-06-15 15:48:12 · 6719 阅读 · 0 评论 -
ffmpeg 字幕格式转换,webvtt字幕格式,srt字幕格式
常见的字幕格式https://zh.wikipedia.org/wiki/%E5%AD%97%E5%B9%95%E6%A0%BC%E5%BC%8F常见的格式:srt、ass、webvttsrt 字幕格式SRT(Subripper)是最简单的文本字幕格式,扩展名为.srt每个字幕段有四部分构成:字幕序号字幕显示的起始时间字幕内容(可多行)空白行(表示本字幕段的结束)如:4500:02:52,184 --> 00:02:53,617慢慢来这表示:第45个字幕,显示时间从该原创 2020-06-15 14:26:14 · 8306 阅读 · 0 评论 -
ffmpeg快速解码抽帧,解码关键帧
背景有很多的视频抽帧的场景,比如视频内容审核,需要对大量的视频来做视频抽帧,虽然视频的解码速度比较快,但是视频量和时长上来后,对整体的资源开销也是非常的大,如果可以在抽帧过程中只解码需要的关键帧,就会节省大量的计算资源。测试环境构建测试片源ffmpeg -i src.mp4 -c:v libx264 -preset veryfast -crf 24 -g 500 -keyint_min 250 -r 25 -an -f mp4 test.mp4 -y查看片源I帧信息ffprobe -i tes原创 2020-06-04 23:15:16 · 8304 阅读 · 0 评论 -
ffmpeg实现马赛克像素化
ffmpeg马赛克命令:ffmpeg -i input.mp4 -vf ‘frei0r=pixeliz0r:0.02|0.02’ -f mp4 output.mp4 -y设置马赛克块像素的大小:block_size_x = 1 + ( ((double)param) * (inst->width/2))设置pixeliz0r参数配置像素块大小。void f0r_set_param_value(f0r_instance_t instance, f0r_param_t para原创 2020-05-28 10:53:43 · 2531 阅读 · 0 评论 -
ffmpeg Could not find module pixeliz0r
错误信息[Parsed_frei0r_0 @ 0x55bceaad3600] Could not find module 'pixeliz0r'.[AVFilterGraph @ 0x55bcea795ac0] Error initializing filter 'frei0r' with args 'pixeliz0r:0.1|0.1'Error reinitializing filters!Failed to inject frame into filter network: Invalid a原创 2020-05-28 00:19:32 · 951 阅读 · 0 评论 -
ffmpeg时间戳精准定位
背景ffmpeg 在转码 -ss accurate_seek 参数分析,是否可以精准的seek视频流。构建测试素材重新编码片源,设置片源gop间隔为10秒,帧率30fps,同时为每帧图像添加时间戳水印,素材时长为5分钟转码命令:ffmpeg -t 5:00 -i input.mp4 -vf “drawtext=fontsize=120:text=’%{pts:hms}’” -c:v libx264 -r 30 -g 300 -s 1280x720 -preset veryfast -crf原创 2020-05-23 00:09:35 · 3144 阅读 · 0 评论 -
ffmpeg实现水平翻转与垂直翻转vflip与hflip
# vflip 垂直翻转ffmpeg -i input.mp4 -vf "vflip" -vframes 1 output.png -y# hflip 水平翻转ffmpeg -i input.mp4 -vf "hflip" -vframes 1 output.png -y原创 2020-03-26 10:13:13 · 3083 阅读 · 0 评论 -
FFmpeg编译支持AV1编解码器libaom-av1
编译av1的库 libaom-av1cd ~/ffmpeg_sources && \git -C aom pull 2> /dev/null || git clone --depth 1 https://aomedia.googlesource.com/aom && \mkdir -p aom_build && \cd aom_buil...原创 2020-02-03 16:14:28 · 12696 阅读 · 4 评论 -
ffmpeg裁剪编译,按需编译,优化代码
FFmpeg可以支持模块的裁剪编译,通常我们会按默认的方式进行编译,把常用的功能模块全部编译到程序中,但是应用到嵌入式系统中,或者存储空间有限制的环境,就需要对FFmpeg进行按需编译。默认编译我们可以看一下通常的编译的ffmpeg文件大小ffmpeg version 4.2.2 Copyright © 2000-2019 the FFmpeg developersbuilt with g...原创 2020-01-30 13:13:45 · 2657 阅读 · 1 评论 -
ffmpeg可支持的编码器、解码器、封装格式、网络协议
ffmpeg可支持的编码器# ./configure --list-encodersa64multi h264_omx mp2fixed proresa64multi5 h264_qsv mpeg1video prore...原创 2020-01-29 22:37:10 · 8711 阅读 · 1 评论 -
ffmpeg实现视频高斯模糊拓边效果
ffmpeg实现视频高斯模糊的效果实现过程,把片源做为2个输入源处理,底层视频用ffmpeg的模糊滤镜boxblur处理出一个有模糊效果的底层,再把上层视频overlay到上层叠加,效果就出来了。实现ffmpeg -i /Users/xubinbin/Downloads/v0200f7b0000bogk0u5jfrmgis6fc4o0.MP4 -vf “split[a][b];[a]scal...原创 2020-01-17 15:58:34 · 6165 阅读 · 0 评论 -
ffmpeg实现视频马赛克特效
ffmpeg实现视频马赛克特效boxblur实现对区域图层做模糊效果后再叠加到原来的图层上ffmpeg -t 10 -i input.mp4 -filter_complex “[0:v]crop=w=100:h=100:x=300:y=300,boxblur=luma_radius=25:luma_power=2[boxblur];[0:v][boxblur]overlay=300:30...原创 2020-01-07 16:47:24 · 6963 阅读 · 6 评论 -
ffmpeg中vf与filter_complex的区别
ffmpeg中vf与filter_complex有什么区别当我们通过ffmpeg使用简单的滤镜的时候,可以通过-vf与-af来实现滤镜效果: _______ _____________ _______ ________| | | | | | | || inp...原创 2020-01-07 16:25:09 · 8118 阅读 · 0 评论 -
ffmpeg 静态执行文件
下载http://ffmpeg.org/download.htmlffmpegffmpeg-4.2.1-amd64-static$ ./ffmpeg ffmpeg version 4.2.1-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2019 the FFmpeg developers built wi...原创 2019-12-01 17:34:50 · 1276 阅读 · 1 评论 -
ffmpeg 生成静音测试音频
通过ffmpeg来产生空的音频帧,方便开发过程中的分析和调试:ffmpeg -f lavfi -t 10 -i anullsrc test.aac -y其中对输入源进行配置:anullsrc=r=48000:cl=mono可以设置声道和采样率等信息。...原创 2019-11-10 16:37:26 · 7235 阅读 · 2 评论 -
ffmpeg 实现录屏
ffmpeg 实现桌面录屏支持平台:Windows 平台MacOS 平台Linux 平台参考实现: https://trac.ffmpeg.org/wiki/Capture/Desktop其实最好的文档还是官方文档原创 2019-10-23 01:44:44 · 1746 阅读 · 0 评论 -
ffmpeg给视频添加时间水印
ffmpeg给视频添加时间水印通过 drawtext 滤镜模块给视频添加时间水印给视频添加时间水印用来做片源调试,非常方便的查找和定位处理的哪一帧视频片源;添加本地时间水印ffmpeg -t 5 -i input.mp4 -vf "drawtext=fontsize=160:text='%{localtime\:%T}'" -c:v libx264 -an -f mp4 output...原创 2019-10-14 02:33:21 · 11785 阅读 · 13 评论 -
ffmpeg 绘制音频波形图
通过绘制音频波形图,可以帮助我们分析音频信息,音量,波形等信息;不同时间段的音量,不同时间段的每个声道的音频信息;使用 ffmpeg 的showwavespic 滤镜来绘制音频的波形图,参考命令如下:ffmpeg -i ~/media/test.mp4 -filter_complex "showwavespic=s=720x180" -frames:v 1 ~/Desktop/audio.pn...原创 2019-05-26 13:53:14 · 8426 阅读 · 6 评论 -
ffmpeg 音频音量的获取
使用 ffmpeg 的 volumedetect 获取音频音量信息,测试命令如下:ffmpeg -i ~/media/test.mp4 -filter_complex volumedetect -c:v copy -f null /dev/null 命令执行结果如下:[Parsed_volumedetect_0 @ 0x7fb417591180] n_samples: 0Stream m...原创 2019-05-26 13:33:42 · 11373 阅读 · 4 评论 -
视频黑屏检测,时长检测 blackdetect
ffmpeg 的 blackdetect 滤镜实现对视频黑屏画面时间段的检测1 参数简介blackdetect filter :检查视频中纯黑色画面的时间段。在检查视频中的过渡片段、广告或者非法数据等黑屏画面时很有效。输出数据包含黑屏片段的起始点,以及黑屏时长,单位为秒。black_min_duration, d:设置黑场时间阈值,只有黑场的连续时间大于门限值才认为是黑场视频。阈...原创 2019-05-06 16:18:48 · 5097 阅读 · 0 评论 -
视频黑屏画面检测 blackframe
ffmpeg的blackframe实现视频黑场画面检测1 参数简介amount:设置黑场的判断阈值,高于此阈值的认为此帧为黑场,该值为一个百分比。默认值98。threshold, thresh:设置黑场像素的判断阈值,低于此阈值的像素认为是黑场像素点。默认值32。2 测试命令ffmpeg -loglevel info -i ~/test.mp4 -vf blackframe=95...原创 2019-05-06 15:37:50 · 11533 阅读 · 0 评论