ffmpeg
zhuxian2009
音视频,流媒体。量化交易系统,大道至简。
展开
-
vscode在ubuntu下调试ffmpeg4.4
使用vscode加载ffmepg源码目录,直接点击run and debug(ctrl+shift+D)根据自己的实际需求安装第三方库,我只安装了libx264,libx265,libsdl2。在main()里面加一个断点,点击运行,就可以进行调试了。现在vscode中打开ffmpeg.c。首先编译一次,打开编译选项。编辑launch.json。选择node.JS方式。......原创 2022-08-11 16:41:55 · 738 阅读 · 0 评论 -
yuv从4k缩小到1080p
将yuv做scale,注意考虑两种比较容易实现的方式,libyuv和ffmpeg的sws;但是yuv在在4k scale到1080p时,小字体会效果比较差,基本都是像蚂蚁啃咬过的,断断续续,看不清;以下对libyuv和ffmepg做scale的每帧耗时和大概效果做了统计:libyuv 4k -> 1080p kFilterLinear 3ms 字迹断裂,不清晰,无法辨识小字体kFilterBox 3-4ms 字迹断裂,不清晰,无法辨识小字体kFil原创 2021-11-19 16:43:29 · 1391 阅读 · 0 评论 -
ffmpeg源码调试环境搭建
1.环境选择ubuntu虚拟机+eclipse2.编译脚本--enable-debug --disable-optimizations --disable-x86asm --disable-asm --enable-static --disable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-ffplay --enable-sdl2 --prefix=/home/youme/work/output/ffmpe.原创 2021-10-20 15:58:46 · 227 阅读 · 0 评论 -
avformat_open_input打开不存在的rtsp阻塞
网上很多文章,说到avformat_open_input阻塞,就设置一下av_dict_set(&avdic, "stimeout ", "300000", 0);ffmpeg源码rtsp.c有这样一段定义{ "timeout", "set maximum timeout (in seconds) to wait for incoming connections (-1 is infinite, imply flag listen)", OFFSET(initial_timeout)原创 2021-09-22 11:52:45 · 1847 阅读 · 2 评论 -
python使用ffprobe提取mp4文件的时长duration
import subprocessdef get_duration(file): """Get the duration of a video using ffprobe.""" cmd="ffprobe -i %s -show_entries format=duration -v quiet -of csv=\"p=0\"" %(file) output = subprocess.check_output( cmd, shell=True...原创 2021-07-14 18:49:43 · 1136 阅读 · 0 评论 -
ffmpeg命令行记录
1. 修改mp4的tbn-video_track_timescale 30000原创 2021-03-12 19:43:56 · 889 阅读 · 0 评论 -
使用ffmpeg编码h264,降低CPU使用率的几个方法
ffmpeg做h264编码,使用了libx264;想要降低cpu使用率,就需要牺牲图像质量;由于已经使用 baseline,就无需考虑B帧了。目前能想到的,主要是需要调控以下一些参数:1.qp值此值范围为0~51 。值越小,量化步长越小,量化的精度就越高,意味着同样画质的情况下,产生的数据量可能会更大。数值越大,图像越模糊,CPU使用率越低。2.设置编码速度preset指定编码速度,速度越慢,画质越好,cpu占用越高,可取值:ultrafast,superfast,veryfast原创 2020-09-08 21:18:55 · 8751 阅读 · 1 评论 -
ffmpeg命令mp3与pcm互转
1.pcm转mp3ffmpeg -f s16le -ar 48000 -ac 1 -i test.pcm -ar 8000 -y test_8k.mp32.pcm重采样ffmpeg -f s16le -ar 48000 -ac 1 -i test.pcm -f s16le -ar 8000 -y test_8k.pcm3.mp3转pcmffmpeg -i test...原创 2020-04-03 10:39:34 · 1007 阅读 · 0 评论 -
基于ffmpeg采集摄像头推送rtp流
1.识别当前系统的摄像头./ffmpeg -f avfoundation -list_devices true -i ""显示以下列表,摄像头序号为0[AVFoundation input device @ 0x7fe926d00dc0] AVFoundation video devices:[AVFoundation input device @ 0x7fe926d00dc0...原创 2020-01-14 17:57:58 · 1842 阅读 · 0 评论 -
ffmpeg设置h264编码IDR间隔
在ffmpeg中,编码h264时,想强制刷出一个I帧,比较容易,但是想强制刷出IDR帧,却没有明确的说明。而在x264的头文件中,可以看到一个参数说明:int i_keyint_max; /* Force an IDR keyframe at this interval */意思是,在此间隔强制IDR关键帧,那么是时间间隔,还是帧间隔呢?当然,我猜...原创 2020-01-12 17:21:22 · 3213 阅读 · 1 评论 -
eclipse调试ffmpeg源码,单步调试不能进入lib函数接口
Debug Configuration—》选择左侧的,需要调试的执行文件,如ffmpeg_g—》在Environment中 new一个环境变量name=LD_LIBRARY_PATHvalue=/root/soft/x264/lib:/源码路径/libavformat:都加进来...原创 2019-08-28 16:08:19 · 176 阅读 · 0 评论 -
ffmpeg获取网络摄像头硬编码H264视频流
ffmpeg -f dshow -vcodec h264 -s 1280x720 -r 30 -i video="HD Pro Webcam C920" -copyinkf -c:v copy -f rtp "rtp://ip:port"已经代码实现,但是不能控制码率、I帧间隔,求大能指教!原创 2018-01-05 14:24:00 · 5820 阅读 · 6 评论 -
Android播放器:ffmpeg+SDL
开源一个Android播放器,处于开发阶段。解码功能由ffmpeg实现;显示功能由SDL实现;目前只是雏形,实现了选择视频文件、播放视频、停止播放等功能。还有很多想法可以做,有时间慢慢来实现!时间宝贵,上图,上代码(在底部)!源码下载: https://gitee.com/zhuxian2009/M原创 2017-10-12 22:40:44 · 640 阅读 · 2 评论 -
Linux下编译Android ffmpeg库(mediacodec 硬件解码)
NDK:android-ndk-r14b-linux-x86_64.zip NDK下载地址 ffmpeg:ffmpeg-3.3.4.tar.bz2 ffmpeg下载地址Linux:Ubuntu1.将下载好的NDK、ffmpeg解压,待用;2.在ffmepg目录下,编辑configure文件,将 SLIBNAME_WITH_MAJOR='$(SLI原创 2017-10-08 21:36:19 · 2855 阅读 · 7 评论 -
Linux下编译Android ffmpeg库
NDK:android-ndk-r14b-linux-x86_64.zip NDK下载地址 ffmpeg:ffmpeg-3.3.4.tar.bz2 ffmpeg下载地址Linux:Ubuntu1.将下载好的NDK、ffmpeg解压,待用;2.在ffmepg目录下,编辑configure文件,将 SLIBNAME_WITH_MAJOR='$(SLIBN原创 2017-10-08 20:47:03 · 332 阅读 · 0 评论 -
最简单的android studio调用ffmpeg动态库
准备工作:1.编译好的ffmpeg动态库.so文件,以及ffmpeg的头文件;2.android studio开发环境,包括NDK等可用环境;步骤一:新建一个android studio工程,命名netplayer,勾选“Include C++ support”;其他选择默认,直到完成;步骤二:将ffmpeg的动态库和include头文件,拷贝到netpla原创 2017-09-23 00:37:56 · 1938 阅读 · 0 评论 -
ffmpeg取rtsp流,打印音视频的ts
改demo程序,调用ffmpeg API,获取rtsp的音视频流,打印每一包的ts,验证是否同步。运行环境是linux//FFDecoder.h#pragma once //#define __STDC_CONSTANT_MACROSextern "C" { #include "libavcodec/avcodec.h" #include "libavformat原创 2017-07-24 20:43:08 · 3755 阅读 · 0 评论 -
ffmpeg参数解释
例子:ffmpeg -y -i "1.avi" -title "Test" -vcodec xvid -s 368x208 -r 29.97 -b 1500 -acodec aac -ac 2 -ar 24000 -ab 128 -vol 200 -f psp -muxvb 768 "output.wmv"解释:以上命令可以在Dos命令行中输入,也可以创建到批处理文件中运行。不过,前提是:转载 2014-11-06 11:38:00 · 467 阅读 · 0 评论 -
ffmpeg命令采集笔记本摄像头视频
笔记本搭载ubunt 12.04,自带摄像头一枚;用命令采集视频并且保存ffmpeg -f alsa -i pulse -f video4linux2 -s qcif -i /dev/video0 ./output.mpg原创 2014-12-03 17:24:58 · 1342 阅读 · 0 评论 -
ffmpeg在eclipse单步调速乱跳问题
在ubuntu下编译完成了ffmpeg,结合eclipse进行单步调速,发现程序乱跳的问题,而且部分变量无法读出只,提示Optimize out需要重新config,再make./configure --enable-debug --disable-optimizations --disable-yasm --disable-asm --enable-static --disable-s原创 2015-01-21 16:56:35 · 832 阅读 · 0 评论 -
ffmpeg编码h264只包含I帧P帧的方法
ffmpeg使用avcodc_encode_video编码,默认产生的h264包含B帧,在安防行业很多地方是不需要用到B帧的。1.基础知识充电这就涉及到h264的各种profile格式了,参考h264各种profileh264分4种等级(profile):Baseline、Main、Extended、HighBaseline profile:支持I帧P帧Main原创 2015-01-21 16:19:25 · 6281 阅读 · 0 评论 -
ubuntu编译ffmpeg并且demo测试
下载ffmpeg,解压(跳过),切换到ffmpeg源码的目录,config指令$ ./configure --enable-libx264 --enable-libxvid --enable-libvo-aacenc --disable-yasm --disable-asm --enable-static --enable-shared --enable-gpl --enable-versio原创 2015-09-17 09:53:53 · 1982 阅读 · 0 评论 -
FFmpeg与SDL双剑合璧之ubuntu
以前所做的工作,大多是把FFmpeg用在windows平台,采用D3D或者OpenGL的方式进行渲染呈现;前面两篇文章中,已经做好了ubuntu平台下的ffmpeg编译与简单调试(ubuntu编译ffmpeg并且demo测试),以及windows平台下的ffmpeg解码SDL显示(windows平台FFMPEG解码SDL显示);梳理一下手上已经具备的材料:①ffmpeg解码,S原创 2015-09-17 16:50:52 · 17300 阅读 · 0 评论 -
FFmpeg与SDL双剑合璧之MFC
在前面的一篇文章中,记录了FFMPEG解码与SDL结合,显示视频的效果;但是用SDL创建的窗口;不便于真正的使用加工,如果需要嵌入到MFC中,就强大许多了。还是前面的代码(),核心的地方,就是创建视频窗口时做小许改动:int CSDLPlayer::InitPlayer(int nWinW, int nWinH,void *pData){ if(SDL_Init(SDL_INIT_VI原创 2015-09-18 15:42:38 · 727 阅读 · 0 评论 -
FFmpeg与SDL双剑合璧之Windows
将FFMPEG解码一个视频文件,解码出来的每一帧YUV数据放入SDL进行渲染播放;1)封装解码功能#pragma onceextern "C" { #include "libavcodec/avcodec.h" #include "libavformat/avformat.h" #include "libavutil/avutil.h" #include "libavutil原创 2015-09-15 18:02:42 · 1400 阅读 · 0 评论 -
用ffmpeg命令叠加图片水印
需要一个原视频文件,和一张普通图片,实现功能:将图片叠加到视频中;视频是widows系统自带的"野生动物.wmv"E:\ffmpeg\bin>ffmpeg.exe -i e:\video\Wildlife.wmv -vf "movie=1.jpg,scale=150:300[watermask];[in][watermask] overlay=100:100[out]" -y e:\v原创 2015-11-14 12:51:45 · 5499 阅读 · 0 评论 -
ffmpeg叠加srt字幕
首先,需要一个srt文件;srt的文件格式大概是:索引时间内容 例如,tt.srt:100:00:00.001 --> 00:00:40.000字幕,这是一个字幕文件然后,就可以执行叠加语句:E:\ffmpeg\bin>ffmpeg.exe -i e:\video\Wildlife.wmv -vf subtitles="tt.srt" -y out.wm原创 2015-11-22 13:23:21 · 5981 阅读 · 0 评论 -
用ffmpeg命令实现rtsp转rtmp
ffmpeg -i "rtsp://$ipc_username:$ipc_pwd@$ipc_rtsp_url" -f mp4 -vcodec copy -r $framerate -s $framewh -b:v $bitrate -an -f flv "rtmp://localhost/live/$streamid" 以上的参数定义如下ipc_username=admin原创 2016-01-12 19:27:13 · 5868 阅读 · 0 评论 -
ffmpeg接收g723音频流
m=audio 19000 RTP/AVP 4 8a=rtpmap:4 G723/8000c=IN IP4 192.168.....以上是sdp文件,比如取名叫做:1.sdp然后,用ffmpeg来接收数据,并且转成wav格式ffmpeg -i 1.sdp -y g723_wav.wav原创 2016-04-30 12:18:35 · 1374 阅读 · 0 评论 -
ffmpeg生产rtp流
录像文件转成h264的rtp流,当下主流的流媒体服务器可识别的rtp流:ffmpeg -re -i input -an -f rtp -c:v libx264 -profile baseline -slices 10 -rtpflags h264_mode0 -payload_type 97 -pkt_size 1460 -slice-max-size 1400 rtp://IP:Po原创 2017-01-06 17:00:10 · 2334 阅读 · 1 评论 -
ffmpeg分割视频文件
ffmpeg -ss 00:00:00 -i e:\test.avi -codec copy -t 00:01:00 e:\test_out.avi解释:-ss原创 2014-11-18 12:15:26 · 1197 阅读 · 0 评论