1. 程式人生 > >FFmpeg示例程式合集-Git批量獲取指令碼

FFmpeg示例程式合集-Git批量獲取指令碼

此前做了一系列有關FFmpeg的示例程式,組成了《FFmpeg示例程式合集》,其中包含了如下專案:
simplest ffmpeg player:                  最簡單的基於FFmpeg的視訊播放器
simplest ffmpeg audio player:       最簡單的基於FFmpeg的音訊播放器
simplest ffmpeg pic encoder:        最簡單的基於FFmpeg的影象編碼器
simplest ffmpeg video encoder:    最簡單的基於FFmpeg的視訊編碼器
simplest ffmpeg audio encoder:   最簡單的基於FFmpeg的音訊編碼器
simplest ffmpeg streamer:             最簡單的基於FFmpeg的推流器(推送RTMP)
simplest ffmpeg mem handler:     最簡單的基於FFmpeg的記憶體讀寫例子
simplest ffmpeg device:                  最簡單的基於FFmpeg的AVDevice例子
simplest ffmpeg format:                 最簡單的基於FFmpeg的封裝格式方面的例子
simplest ffmpeg video filter:          最簡單的基於FFmpeg的AVfilter例子(水印疊加)
simplest ffmpeg swscale:             最簡單的基於FFmpeg的libswscale的示例
為了方便今後程式碼的升級,將上述工程的程式碼統一上傳到了Git程式碼託管平臺(SourceForge,Github,開源中國),並且做了幾個簡單的指令碼用於獲取程式碼,如下所列:
克隆(simplest_ffmpeg_demos_git_clone_all.sh):把程式碼從遠端複製到本機(類似於下載)。
更新(simplest_ffmpeg_demos_git_pull_all.sh):把程式碼從遠端更新到本機(類似於升級)。
重置(simplest_ffmpeg_demos_git_reset_all.sh):回退本機的程式碼到上一個版本(類似於還原)。
歸檔(simplest_ffmpeg_demos_git_archive_all.sh):將本機的專案程式碼歸檔(例如打包為zip)。

這些指令碼的下載地址:

【Github】 https://github.com/leixiaohua1020/leixiaohua1020.github.io/tree/master/batch

克隆


克隆指令碼可以“一鍵下載”(clone命令)原始碼至本機,並且設定本地倉庫的3個遠端倉庫(remote):SourceForge,Github和開源中國。
該指令碼有一個originstr引數需要設定。該引數決定了從哪裡克隆原始碼,經過測試發現開源中國的速度明顯高於SourceForge和Github。
simplest_ffmpeg_demos_git_clone_all.sh內容如下所示。
echo "============================================="
echo "simplest ffmpeg demos list ---- git clone all"
echo "Lei Xiaohua"
echo "Communication University of China / Digital TV Technology"
echo "
[email protected]
" echo "http://blog.csdn.net/leixiaohua1020" echo "=============================================" originstr="github" #3 kinds of origins: githubstr="github" sourceforgestr="sourceforge" oscstr="osc" #Git Clone #Github #http://leixiaohua1020.github.com/ if [ "$originstr" = "$githubstr" ] then git clone https://github.com/leixiaohua1020/simplest_ffmpeg_player.git simplest_ffmpeg_player git clone https://github.com/leixiaohua1020/simplest_ffmpeg_audio_player.git simplest_ffmpeg_audio_player git clone https://github.com/leixiaohua1020/simplest_ffmpeg_picture_encoder.git simplest_ffmpeg_picture_encoder git clone https://github.com/leixiaohua1020/simplest_ffmpeg_video_encoder.git simplest_ffmpeg_video_encoder git clone https://github.com/leixiaohua1020/simplest_ffmpeg_audio_encoder.git simplest_ffmpeg_audio_encoder git clone https://github.com/leixiaohua1020/simplest_ffmpeg_streamer.git simplest_ffmpeg_streamer git clone https://github.com/leixiaohua1020/simplest_ffmpeg_mem_handler.git simplest_ffmpeg_mem_handler git clone https://github.com/leixiaohua1020/simplest_ffmpeg_device.git simplest_ffmpeg_device git clone https://github.com/leixiaohua1020/simplest_ffmpeg_format.git simplest_ffmpeg_format git clone https://github.com/leixiaohua1020/simplest_ffmpeg_video_filter.git simplest_ffmpeg_video_filter git clone https://github.com/leixiaohua1020/simplest_ffmpeg_swscale.git simplest_ffmpeg_swscale #SourceForge #https://sourceforge.net/u/leixiaohua1020/wiki/ elif [ "$originstr" = "$sourceforgestr" ] then git clone git://git.code.sf.net/p/simplestffmpegplayer/code simplest_ffmpeg_player git clone git://git.code.sf.net/p/simplestffmpegaudioplayer/code simplest_ffmpeg_audio_player git clone git://git.code.sf.net/p/simplestffmpegpictureencoder/code simplest_ffmpeg_picture_encoder git clone git://git.code.sf.net/p/simplestffmpegvideoencoder/code simplest_ffmpeg_video_encoder git clone git://git.code.sf.net/p/simplestffmpegaudioencoder/code simplest_ffmpeg_audio_encoder git clone git://git.code.sf.net/p/simplestffmpegstreamer/code simplest_ffmpeg_streamer git clone git://git.code.sf.net/p/simplestffmpegmemhandler/code simplest_ffmpeg_mem_handler git clone git://git.code.sf.net/p/simplestffmpegdevice/code simplest_ffmpeg_device git clone git://git.code.sf.net/p/simplestffmpegformat/code simplest_ffmpeg_format git clone git://git.code.sf.net/p/simplestffmpegvideofilter/code simplest_ffmpeg_video_filter git clone git://git.code.sf.net/p/simplestffmpegswscale/code simplest_ffmpeg_swscale #OSC #http://git.oschina.net/leixiaohua1020 else git clone https://git.oschina.net/leixiaohua1020/simplest_ffmpeg_player.git simplest_ffmpeg_player git clone https://git.oschina.net/leixiaohua1020/simplest_ffmpeg_audio_player.git simplest_ffmpeg_audio_player git clone https://git.oschina.net/leixiaohua1020/simplest_ffmpeg_picture_encoder.git simplest_ffmpeg_picture_encoder git clone https://git.oschina.net/leixiaohua1020/simplest_ffmpeg_video_encoder.git simplest_ffmpeg_video_encoder git clone https://git.oschina.net/leixiaohua1020/simplest_ffmpeg_audio_encoder.git simplest_ffmpeg_audio_encoder git clone https://git.oschina.net/leixiaohua1020/simplest_ffmpeg_streamer.git simplest_ffmpeg_streamer git clone https://git.oschina.net/leixiaohua1020/simplest_ffmpeg_mem_handler.git simplest_ffmpeg_mem_handler git clone https://git.oschina.net/leixiaohua1020/simplest_ffmpeg_device.git simplest_ffmpeg_device git clone https://git.oschina.net/leixiaohua1020/simplest_ffmpeg_format.git simplest_ffmpeg_format git clone https://git.oschina.net/leixiaohua1020/simplest_ffmpeg_video_filter.git simplest_ffmpeg_video_filter git clone https://git.oschina.net/leixiaohua1020/simplest_ffmpeg_swscale.git simplest_ffmpeg_swscale fi


 

更新


更新指令碼可以把本地庫的原始碼更新到最新版本。隨著FFmpeg的API的變更以及一些程式中Bug的修復,專案的原始碼需要與時俱進地做一些微調。可以使用pull命令將本地庫的原始碼“升級”到最新版本。
simplest_ffmpeg_demos_git_pull_all.sh內容如下所示。
echo "============================================="
echo "simplest ffmpeg demos list ---- git pull all"
echo "Lei Xiaohua"
echo "Communication University of China / Digital TV Technology"
echo "[email protected]"
echo "http://blog.csdn.net/leixiaohua1020"
echo "============================================="

#remotestr="github"
remotestr="osc master"

#Git Pull
cd simplest_ffmpeg_player
git pull $remotestr
cd ..

cd simplest_ffmpeg_audio_player
git pull $remotestr
cd ..

cd simplest_ffmpeg_picture_encoder
git pull $remotestr
cd ..

cd simplest_ffmpeg_video_encoder
git pull $remotestr
cd ..

cd simplest_ffmpeg_audio_encoder
git pull $remotestr
cd ..

cd simplest_ffmpeg_streamer
git pull $remotestr
cd ..

cd simplest_ffmpeg_mem_handler
git pull $remotestr
cd ..

cd simplest_ffmpeg_device
git pull $remotestr
cd ..

cd simplest_ffmpeg_format
git pull $remotestr
cd ..

cd simplest_ffmpeg_video_filter
git pull $remotestr
cd ..

cd simplest_ffmpeg_swscale
git pull $remotestr
cd ..


 

重置


重置指令碼用於將原始碼回退到上一個版本。重置命令(reset)在兩種情況會使用:
一種情況是改程式碼的時候改著改著忽然發現程式碼編譯不過了,可是又難以恢復到原來可以編譯通過的程式碼,這時候可以使用重置命令;
另一種情況是改完程式碼之後,使用更新命令(pull)卻提示錯誤,這時候可以先使用重置命令,然後再使用更新命令。
simplest_ffmpeg_demos_git_reset_all.sh內容如下所示。
echo "============================================="
echo "simplest ffmpeg demos list ---- git reset all"
echo "Lei Xiaohua"
echo "Communication University of China / Digital TV Technology"
echo "[email protected]"
echo "http://blog.csdn.net/leixiaohua1020"
echo "============================================="


#Git Pull
cd simplest_ffmpeg_player
git reset --hard
cd ..

cd simplest_ffmpeg_audio_player
git reset --hard
cd ..

cd simplest_ffmpeg_picture_encoder
git reset --hard
cd ..

cd simplest_ffmpeg_video_encoder
git reset --hard
cd ..

cd simplest_ffmpeg_audio_encoder
git reset --hard
cd ..

cd simplest_ffmpeg_streamer
git reset --hard
cd ..

cd simplest_ffmpeg_mem_handler
git reset --hard
cd ..

cd simplest_ffmpeg_device
git reset --hard
cd ..

cd simplest_ffmpeg_format
git reset --hard
cd ..

cd simplest_ffmpeg_video_filter
git reset --hard
cd ..

cd simplest_ffmpeg_swscale
git reset --hard
cd ..


 

歸檔


歸檔指令碼用於將本地的程式碼庫打包為壓縮包(*.zip,*.tar.gz)。我個人感覺Git歸檔和直接壓縮原始碼資料夾最大的不同在於Git歸檔使用了“.gitignore”檔案,從而忽略掉一些無關緊要的檔案。
該指令碼執行之後會生成一個名稱為“simplest_ffmpeg_demos_list_{日期}”的資料夾,並且將歸檔後的檔案儲存在其中,歸檔後文件的命名方式為“simplest_ffmpeg_player_{日期}.zip”。
simplest_ffmpeg_demos_git_archive_all.sh內容如下所示。
echo "============================================="
echo "simplest ffmpeg demos list ---- git archive all"
echo "Lei Xiaohua"
echo "Communication University of China / Digital TV Technology"
echo "[email protected]"
echo "http://blog.csdn.net/leixiaohua1020"
echo "============================================="



#save in a folder named with date
#file suffix
#fsuffix="latest"
fsuffix=$(date +%y%m%d)
#folder to save files
archivefolder="simplest_ffmpeg_demos_list_"${fsuffix}
echo "Archive Folder : "${archivefolder}

#if folder not exist, create it
if [ ! -d ${archivefolder} ]; then
  mkdir ${archivefolder}
fi

#Git Archive
echo Archive simplest_ffmpeg_player...
cd simplest_ffmpeg_player
git archive -o "../"${archivefolder}"/simplest_ffmpeg_player_"${fsuffix}".zip" HEAD
cd ..


echo Archive simplest_ffmpeg_audio_player...
cd simplest_ffmpeg_audio_player
git archive -o "../"${archivefolder}"/simplest_ffmpeg_audio_player_"${fsuffix}".zip" HEAD
cd ..

echo Archive simplest_ffmpeg_picture_encoder...
cd simplest_ffmpeg_picture_encoder
git archive -o "../"${archivefolder}"/simplest_ffmpeg_picture_encoder_"${fsuffix}".zip" HEAD
cd ..

echo Archive simplest_ffmpeg_video_encoder...
cd simplest_ffmpeg_video_encoder
git archive -o "../"${archivefolder}"/simplest_ffmpeg_video_encoder_"${fsuffix}".zip" HEAD
cd ..

echo Archive simplest_ffmpeg_audio_encoder...
cd simplest_ffmpeg_audio_encoder
git archive -o "../"${archivefolder}"/simplest_ffmpeg_audio_encoder_"${fsuffix}".zip" HEAD
cd ..

echo Archive simplest_ffmpeg_streamer...
cd simplest_ffmpeg_streamer
git archive -o "../"${archivefolder}"/simplest_ffmpeg_streamer_"${fsuffix}".zip" HEAD
cd ..

echo Archive simplest_ffmpeg_mem_handler...
cd simplest_ffmpeg_mem_handler
git archive -o "../"${archivefolder}"/simplest_ffmpeg_mem_handler_"${fsuffix}".zip" HEAD
cd ..

echo Archive simplest_ffmpeg_device...
cd simplest_ffmpeg_device
git archive -o "../"${archivefolder}"/simplest_ffmpeg_device_"${fsuffix}".zip" HEAD
cd ..

echo Archive simplest_ffmpeg_format...
cd simplest_ffmpeg_format
git archive -o "../"${archivefolder}"/simplest_ffmpeg_format_"${fsuffix}".zip" HEAD
cd ..

echo Archive simplest_ffmpeg_video_filter...
cd simplest_ffmpeg_video_filter
git archive -o "../"${archivefolder}"/simplest_ffmpeg_video_filter_"${fsuffix}".zip" HEAD
cd ..

echo Archive simplest_ffmpeg_swscale...
cd simplest_ffmpeg_swscale
git archive -o "../"${archivefolder}"/simplest_ffmpeg_swscale_"${fsuffix}".zip" HEAD
cd ..



相關推薦

FFmpeg示例程式-Git批量獲取指令碼

此前做了一系列有關FFmpeg的示例程式,組成了《FFmpeg示例程式合集》,其中包含了如下專案:simplest ffmpeg player:                  最簡單的基於FFmpeg的視訊播放器simplest ffmpeg audio player:

FFmpeg示例程式-批量編譯指令碼

此前做了一系列有關FFmpeg的示例程式,組成了《最簡單的FFmpeg示例程式合集》,其中包含了如下專案:simplest ffmpeg player:                  最簡單的基於FFmpeg的視訊播放器simplest ffmpeg audio play

Python 練手程式(一)

一、百錢百雞 公雞5文錢一隻,母雞3文錢一隻,小雞3只一文錢,用100文錢買一百隻雞,其中公雞,母雞,小雞都必須要有,問公雞,母雞,小雞要買多少隻剛好湊足100文錢。 # encoding: utf-8 x = 1 y = 1 while x <

git 批量 pull 指令碼

步驟: 1、切換到git目錄; 2、獲取當前分支名; 3、執行pull。 4、指令碼名:gitpull.bat   cd C:\Android\Android Project\geek\RF-app for /f "delims=" %%t in ('git s

git學習資源

git學習 ref bing blank www target detail 學習 git git官網 Pro git 電子書,這裏還有中文版,這也是官方推薦的。 git學習資源合集

影視娛樂類API調用的代碼示例:NBA賽事、電視節目等

utf8 post 語言 spa ted alibaba reat httpurl div 以下示例代碼適用於 www.apishop.net 網站下的API,使用本文提及的接口調用代碼示例前,您需要先申請相應的API服務。 NBA賽事:NBA籃球賽事賽程相關信息 電視節

知識類API調用的代碼示例:駕考題庫、ISBN書號查詢、萬年歷查詢等

system 之間 HP sts efault text set verify base 以下示例代碼適用於 www.apishop.net 網站下的API,使用本文提及的接口調用代碼示例前,您需要先申請相應的API服務。 駕考題庫:獲取駕考題目與答案 ISBN書號查詢:

Git&GitHun 命令

com email message 系統用戶 日誌 git add etc 版本信息 操作系統 Git&GitHun 命令合集 基本操作 git --version 查看git版本信息 git add 本地庫初始化 設置簽名 git config user.n

微信小程式,精選Demo,你確定不要嗎?

小編最近在開發小程式,也讀到了不少優秀的小程式原始碼,專案中有些需求可以直接從原始碼裡貼上複製過來,雖然這樣做不利於自己獨立編寫程式碼,但比較是給公司做專案啊,秉著效率第一的原則,簡直沒有什麼比ctrl+c,ctrl+v,更加順手了。為了感恩大家長久以來的關注和支援,小編準備了一些福利,整理了130

微信小程式經典案例開發視訊教程

課程介紹:非常值得推薦的一套微信小程式開發視訊教程,來自極客學院全套的微信實戰開發程式,值得學習-------------------課程目錄-------------------├<; Part1>│  ├1.1微信小程式從基礎到實戰課程概要.mp4│ &

Java程式設計師秋招面經大(BAT美團網易小米華為中興等)

Cvte提前批 阿里內推 便利蜂內推 小米內推 金山wps內推 多益網路 拼多多學霸批 搜狗校招 塗鴉移動 中國電信it研發中心 中興 華為 蘇寧內推

程式設計師都是隱藏的文學家,皮起來你無法招架【爆笑

印象中,蘋果商店裡 APP的更新日誌 通常都是一些簡明扼要 說了等於沒說的描述 但我們終究還是 低估了程式設計師們的才華 他們皮起來你根本想象不到! 我們來看看那些年程式設計師們,那些年笑翻我們的奇葩更新日誌吧 這年頭做一個單身狗 實在是太危險了 連更新個A

微信小程式獲取formId (批量獲取

針對微信小程式傳送模板訊息需要的formId,本人表示有的時候很頭疼,所以給他家提供了一個收集formId的簡單方法: <form bindsubmit="form_submit" report

Git (GitHub)

Git (GitHub) 合集 Git (GitHub) 合集 下載 GitHub 上的程式碼 下載一個單獨的檔案[^1] 下載一個專案的子資料夾[^2] Reference

程式設計師網站

查詢網站背後由哪些技術支援,比如作業系統的型別、所採用的訪問量統計服務、採用的釋出平臺、廣告平臺、語言框架、聚合功能、頁面文件資訊、網站編碼及作業系統資訊等等:https://builtwith.com

python flask中填的一些坑,MySQL連結問題(MySQL拒絕訪問、command 'x86、獲取管理員許可權、檢視埠號等問題)

1、在前置flask和python功能性外掛都安裝好的前提下,開始MySQL之旅。 首先是MySQL 的安裝,可以參考已下博文 然後MySQL和flask的一些安裝,例如pymysql和SQLAlchemy,自行安裝就可以了,你的書或者視訊內容上都有教這個的。

GIT -- bash命令與github之間的操作

縱使圖形化工具遍地,我對bash的愛意也是無法停止的,因為生命的意義在於裝13。 git config --global user.name "" git config --global user.email ""    //設定使用者名稱與郵箱 git config -

3天200個開源專案,Swift程式語言資料大 以及43個優秀的Swift開源專案

Swift 基於C和Objective-C,是供iOS和OS X應用程式設計的全新語言,更加高效、現代、安全,可以提升應用效能,同時降低開發難度。 Swift仍然處於beta測試的階段,會在iOS 8釋出的時一同推出市場,用來取代現有的Objective-C語言。WWDC剛剛結束,在不到24小時的時

400多個開源專案以及43個優秀的Swift開源專案-Swift程式語言資料大

Swift 基於C和Objective-C,是供iOS和OS X應用程式設計的全新語言,更加高效、現代、安全,可以提升應用效能,同時降低開發難度。 Swift仍然處於beta測試的階段,會在iOS 8釋出的時一同推出市場,用來取代現有的Objective-C語言。

前端,Java,產品經理,微信小程式,Python等資源大放送

為了感恩大家長久以來的關注和支援,小編準備了一些福利,整理了包含前端,Java,產品經理,微信小程式,Python,網站原始碼,Android應用視訊教程,微信公眾平臺開發教程及材料等資源合集大放送。重要的話說三遍,感恩大回饋,超有價值的學習資料免費送!免費領取!如果需要學習視訊,歡迎