- 博客(23)
- 资源 (8)
- 收藏
- 关注
原创 解决Gstreamer中libffi 的 dynamic-stack-buffer-overflow错误
解决Address Sanitizer扫描Gstreamer代码出现的libffi错误问题
2024-07-02 16:39:51 324
原创 Audio Codec ——AC 4 TS,MP4封装转换全解
最全的AC4资料,Dolby(杜比)AC4是一种音频的编码解码格式,用在美国等少数国家的ATSC3的电视系统中,目前FFMPEG,VLC等播放器都不能解码。从整体上看一下AC4的帧结构,AC4 Sync Frame包括。Sync word目前有两个,都是16位,0xAC40表示不带CRC校验,0xAC41表示带CRC校验。Frame size是表示当前的Frame较长,需要用3个字节来表示,CRC检验字占个字节。其中,Sync word, Frame size以及CRC非必选项。
2024-06-20 15:38:11 813
原创 关于FFMPEG编译调试FFPLAY网络未返回HTTP Header的问题
追踪avio_read发现从网络中读取的MPD数据是从<Period duration="PT0H15M37.045S">这个位置开始。对比正常运行的日志记录,软件并未返回HTTP响应却返回了MPD文件的内容,导致http在get_line的时候,把MPD数据的头部给丢掉了,直到遇到了下一个新的空行。这是问题所在,但原因是什么呢?调试windows上的send及revc函数没有返回错误。使用google chrome浏览器抓包情况也是无HTTP HEADER响应,但可以下载到MPD文件,后来发现,
2024-04-29 18:27:42 362
原创 Gstreamer Dash直播数据下载分析
本文也分析始于列表下载,止于container数据送到文件demux,比如送到qtdemux,主要是数据下载,尔后的流程不在本文讨论范围。主要包括gst_adaptive_demux_stream_download_loop任务,gst_adaptive_demux_updates_loop任务和gst_system_clock_async_thread,_src_chain这几方面的任务,Dash直播的时候,音视频可能会分开,因此,数据下载可能会有多个任务,也就是gs
2023-03-16 17:14:47 382
原创 FFMPEG之bitstream_filter
ctx->par_in->extradata + 4跳过的字节如下图所示。跳过的字节就是红色框中的内容。此时length_size为4,unit_nb是1。static int h264_extradata_to_annexb(AVBSFContext *ctx, const int padding){ H264BSFContext *s = ctx->priv_data; uint16_t unit_size; uint64_t total_s...
2023-03-09 17:05:55 1322
原创 从零开始成为GStreamer专家——GSlice
Gslice全称应该是GSlice allocator,是一种有效的内存管理方式,它将大小相同chunk_size的内存分成内存块组,称为一个magazine,一个magazine内有许多个内存大小一样的空间。是一种节省空间、可扩展的分配大小相同的内存块的内存块管理方式
2022-12-21 13:53:16 737
原创 Excel VBA 巧列工作计划
有一种工作内容叫做给计划,工程师常常需要给出工作计划安排,工作天数和工作时期。所以Engineer常常需要对着日历一遍又一遍地核对日期与天数,浪费大量时间且错误率较高。作者写了一个VBA小工具,指定工作天数后,自动化计算各项工作需要的开始时间和结束时间,方便某些客户计划制定。
2022-10-25 18:18:14 708
原创 Audio格式汇编
LATM和LOAS都用于低开销的audio传输中,LATM数据包中的AudioSpecificConfig可以用带内也可带外传送,由于AudioSpecificConfig 一般不变,在MP4格式的文件中,可以只在文件头部信息中描述一次,将AudioSpecificConfig 信息一次发送给解码器,这称为带外传送。一般情况下ADTS的头信息是7个字节,分为2adts_fixed_header和adts_variable_header部分,同步字符是0xFFF,代表一帧的开始和上一帧的结束。
2022-09-30 10:15:03 585
原创 从零开始成为GStreamer专家——GStreamer类型系统
GStreamer类型系统Gstreamer的类型系统来源于GLib Object System,GLib对基本类型进行了重新映射,同时实现了如Lists,hash表等等算法,它比Gobject的类型更通用。Gobject和它的底层类型系统Gtype被用在GTK+(图形用户界面工具包)和大多数GNOME库(Linux上的图形桌面环境库)。Gtype用C的方式实现了面向对象,用来兼容不同类型的语言和提供透明的跨语言交叉访问,比如Python和C程序的互相访问。G...
2022-01-25 22:18:00 984
原创 从零开始成为GStreamer专家——基于Windows的GStreamer从源码下载、编译到开发
写一个自己的Hello,Word!代码下载一、GStreamer下载到Sign up · GitLabfreedesktop.org GitLab loginhttps://gitlab.freedesktop.org/users/sign_up上注册一个用户。 在PC机上用ssh-keygen -t rsa -C "yourname@yourhost.com"生成id_rsa.pub值,把这个值贴到下面Key框里,如果这一步不会,请搜索参考ssh-keygen的用法。 git clo...
2022-01-21 14:44:13 9983 3
原创 一文弄懂FFMPEG HLS & 加密HLS
HLS打开网络连接:#0 send#1 tcp_write libavformat/tcp.c:222#2 retry_transfer_wrapper libavformat/avio.c:355#4 http_connect libavformat/http.c:215#6 http_open at libavformat/http.c:317#7 ffurl_connect at libavformat/avio.c:204#8 ffurl_open at libavformat....
2021-12-22 10:37:32 5548
原创 OpenMax IL开发指引
前言:OpenMax IL参考网站:OpenMAX Overview - The Khronos Group IncOpenMax IL源码下载网站:Bellagio OpenMAX Integration Layer
2021-12-16 14:59:40 768
原创 FFMPEG优化的帧率估计分析
FFMPEG的帧率分析在avformat_find_stream_info中进行。主要用到了如下结构体:struct { int64_t last_dts; int64_t duration_gcd; int duration_count; int64_t rfps_duration_sum; double (*duration_error)[2][MAX_STD_TIMEBASES]; int64_t codec_info_duration; i...
2021-06-03 19:10:50 1211
原创 FFMPEG 时间戳PTS校正
FFMPEG 时间戳PTS校正前言 FFMPEG时间戳校正是通过DTS来进行的,在compute_pkt_fields中实现。代码/*** Return the frame duration in seconds. Return 0 if not available.*/void ff_compute_frame_duration(AVFormatContext *s, int *pnum, int *pden, AVStream *st, ...
2021-06-01 18:26:51 1800
原创 AVI 文件格式解析
AVI 文件格式解析前言 AVI(Audio Video Interleaved 音频视频交错格式)是一种音视频的封装格式,于1992年由微软公司推出。它用RIFF(Resource Interchange File Format 资源交换文件格式)描述,包括Chunk和LIST两种结构。Chunk用来描述(音频/视频/字幕)的数据,包含在movi LIST中:Chunk标志是4字节的ASCII码标识符dwFourCC("four-character code"):Chunk...
2021-03-03 10:30:47 5654 7
原创 FFMPEG 之 AVPacket
前言:FFMPEG使用版本ffmpeg-4.2.2av_packet_refint av_packet_ref(AVPacket *dst, const AVPacket *src){ int ret; /*复制src的内容到dst,整这一出是为了深拷贝。把src中side data全部拷贝到dst中去,而不是仅仅传个指针到dst。*/ ret = av_packet_copy_props(dst, src); if (ret < 0) ...
2021-01-28 17:13:08 2550 1
原创 FFMPEG 之 parser 一文搞懂FFMPEG 分帧、组帧Framimg
FFMPEG 之 parse_packet前言 现实世界中的声音图像采样后经过音视频压缩技术压缩而成的码流称为ES流(Elementary Stream),ES流中包含有解码器解码文件必须的信息,比如视频宽高,采样格式,声音的采样率,声道等等。为了方便传输,播放,将音视频ES数据打包到一个文件中,这个文件称之为音视频ES流的封装,常见的音视频封装格式有:MP3,MP4,AVI,MKV,FLV,RMVB,TS,PS等等。 例外也时有发生,有些文件在打包的时候,只包含了ES流,无封装格式...
2021-01-20 17:21:23 3647 1
CAN总线&HDL设计资料&IEEE1194&PSPICE的高频开关电源仿真实例&TCPIP源代码&ucosii
2010-05-20
经典FPGA入门教程
2009-01-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人