原创 Java/PHP/C#等語言如何調用ffmpeg/ffprobe獲取音視頻文件的信息並輸出爲JSON格式

我的這篇博文用FFmpeg獲取視頻流+音頻流的信息(編碼格式、分辨率、幀率、播放時長...)描述了用C++的方法調用FFmpeg API獲得視音頻文件的信息,但是如果你用其他語言:比如Java/PHP/C#等解釋性語言開發的,雖然也可以通

原创 怎麼在視頻上疊加字幕和Logo--技術實現2

上一篇博文介紹了渲染時疊加字幕的技術實現方法,而這一篇給大家講解怎麼用修改視頻像素的方法疊加字幕和Logo。下面我把疊加字幕和Logo都統稱爲疊加OSD。 圖像有分YUV和RGB格式,每個像素都有一個座標和地址,我們要在圖像指定地方疊加O

原创 國標MPEG-PS實時流播放器開發(附例子)

公安部制定的GBT 28181標準廣泛應用於安防領域,這個標準規定了傳輸的視音頻數據要封裝成PS流格式。PS格式(原名叫MPEG-PS)在很多領域已經應用了很長一段時間,特別是在安防、廣播電視、影音製作等領域,我們熟知的DVD格式(vob

原创 FFmpeg採集攝像頭圖像並推流(RTSP/RTMP)---開發總結

我的一篇博文《如何用FFmpeg API採集攝像頭視頻和麥克風音頻。。。》已經介紹瞭如何從視音頻採集設備獲取數據,並且編碼、保存文件到本地。但是,有些應用並不是把流保存成文件,而是需要發送到網絡的,比如現在很典型的一種應用場景:把流推送到

原创 如何枚舉系統的視音頻採集設備

    用Directshow SDK很容易實現該功能,但是開發者必須瞭解Directshow SDK的一些基礎知識,對於不瞭解Directshow的開發員就有點頭疼了。爲了更方便他們開發,我封裝了一個動態庫,可以枚舉系統的視音頻採集設備

原创 Android平臺使用MediaCodec壓縮攝像頭圖像時設置碼率無效或碼率偏差很大的問題解決

Android從4.1系統開始,引進了MediaCodec API,支持對圖像進行硬編碼,但很多讀者剛開始使用這套API遇到很多問題,特別是不知道如何正確設置編碼器的參數。設置MediaCodec編碼器涉及如下幾個重要的參數:碼率模式(固

原创 如何發送和接收RTP包,用FFmpeg分離、解碼

 RTP是網絡上進行流媒體傳輸的一種常用協議,現在有很多封裝RTP協議的開源庫,比如:ortp, jrtplib,而其中最有名的要數jrtplib,本文給大家演示怎麼用jrtplib開發一個帶RTP發送和接收功能的應用程序,但這篇文章不會

原创 如何使用jrtplib進行RTP發送和接收

RTP 協議是目前流媒體實時傳輸用得最廣的一種協議,大家在開發用到RTP協議的程序時,可能會考慮使用一些開放源代碼的RTP庫,比如大名鼎鼎的JRTPLIB。 JRTPLIB是一個面向對象的RTP庫,它完全遵循RFC 1889設計,在很多場

原创 如何寫Directshow Render Filter並實現視頻渲染、疊加字幕和位圖功能

    在播放器上疊加字幕或位圖(Logo)是一個很常見的需求,現在很多播放器都支持該功能。播放器開發目前可基於框架的有很多,比如MPlayer,gstreamer,Directshow,而這篇教程就是講解怎麼在Directshow播放器

原创 如何發送和接收RTP封包的H264,用FFmpeg解碼

這篇文章給大家介紹怎麼打包H264分片到RTP包,並且實現一個播放程序演示接收RTP包和用FFmpeg解碼。爲了讓大家更瞭解H264打包成RTP的細節,有必要羅嗦一下向大家介紹一些相關的基礎知識,下面分三節介紹,其中前面兩節是基礎知識,第

原创 年輕程序員如何規劃自己的職業道路,不斷提升能力

我是一個有10多年從業經驗的程序員,現在事業還不算成功,還是在一線上做開發,拿着一份穩定、待遇還算不錯的收入。從畢業到現在自己事業上經歷了很多波折,自己也有些感悟,希望向那些年輕的程序員分享下經驗之談,對後輩提供一些建議。 1. 做軟件開

原创 怎麼在視頻上疊加字幕和Logo--技術實現1

 這篇文章我給大家講解的這種字幕疊加和Logo疊加方法是在渲染視頻的時候“畫“上去的,其實是通過某種API將OSD和Logo繪製到顯卡緩存,然後提交緩存到屏幕。我們知道渲染視頻有幾種常用的API:GDI,DirectDraw,D3D,Op

原创 使用opencv調用攝像頭然後錄製視頻和保存文件

用 OpenCV 開發經常用到攝像頭,從 Camera獲取圖像後用OpenCV的算法進行處理,但是一般我們處理完圖像之後,還需要將視頻保存下來,比如保存成avi、mp4等格式。怎麼保存呢?其實OpenCV有一個類cv::VideoWrit

原创 怎麼在視頻上疊加字幕和Logo--開題篇

     視頻疊加字幕和圖標(在某些地方也叫疊加OSD)在很多場合都很有用,比如電視臺在直播的節目上疊加臺標;美女主播在直播時在視頻上加上自己喜愛的飾物或大頭貼以增加娛樂的氣氛;電影播放時在視頻下方顯示中英文字幕。正因爲疊加字幕和圖標的技

原创 利用FFmpeg API進行字符疊加和加水印

前面兩篇文章詳細講解了怎麼疊加字幕和Logo,但是這兩篇的例子主要是針對Windows平臺的,用到大量Windows API,一些非Windows程序員想要移植到其他平臺(如Linux、Android)可能還要費一番功夫。要在其他平臺進行