1. 程式人生 > >ffmpeg與ffserver的協同工作

ffmpeg與ffserver的協同工作

本文轉自:http://www.cnblogs.com/liushunli/p/5303966.html

ffmpeg和ffserver配合使用可以實現實時的流媒體服務,可以實時傳輸來自攝像頭的資料,客戶端可以採用HTTP、RTSP、RTP協議等播放視訊流。

一、概念和流程

ffmpeg和ffserver配合使用涉及到四個概念:

1.      ffmpeg,負責媒體檔案的轉碼工作,把你伺服器上的源媒體檔案轉換成要傳送出去的流媒體檔案。

2.      ffserver,負責響應客戶端的流媒體請求,把流媒體資料傳送給客戶端。

3.      ffserver.conf,ffserver啟動時的配置檔案,在這個檔案中主要是對網路協議,快取檔案feed1.ffm和要傳送的流媒體檔案的格式引數做具體的設定。

4.      feed1.ffm,可以看成是一個流媒體資料的快取檔案,ffmpeg把轉碼好的資料傳送給ffserver,如果沒有客戶端連線請求,ffserver把資料快取到該檔案中。

工作流程如下:

1、 啟動ffserver,配置引數

ffserver先於ffmpeg啟動,它在啟動的時候需要加引數-f指定其配置檔案,配置檔案裡包含埠資訊、緩衝檔案配置、傳送流配置(如編碼方式,幀率,取樣率……)。

2、 啟動ffmpeg,輸入流

    啟動ffmpeg,向緩衝檔案輸入資料流,資料流可以來自攝像頭,也可以來自本來就存在的檔案。

feed1.ffm是一個緩衝檔案,fserver啟動後,feed1.ffm就會自動被建立,feed1.ffm開始的部分已經寫入向客戶端傳送流的配置資訊,在feed1.ffm做緩衝用的時候,這些資訊是不會被覆蓋掉。

ffmpeg啟動的一個關鍵引數就是“http://ip:port/feed1.ffm”,其中ip是執行ffserver主機的ip,如果ffmpeg和ffserver都在同一系統中執行的話,用localhost或者127.0.0.1也行。ffmpeg啟動後會與ffserver建立一個連線(短暫的連線),通過這第一次的連線,ffmpeg從ffserver那裡獲取了向客戶端輸出流的配置,並把這些配置作為自己編碼輸出的配置,然後ffmpeg斷開了這次連線,再次與ffserver建立連線(長久的連線),利用這個連線ffmpeg會把編碼後的資料傳送給ffserver。如果你觀察ffserver端的輸出就會發現這段時間會出現兩次HTTP的200,這就是兩次連線的過程。

3、連線過程

ffmpeg從攝像頭獲取資料後,按照輸出流的編碼方式編碼,然後傳送給ffserver,ffserver收到ffmpeg的資料後,如果網路上沒有播放的請求,就把資料寫入feed1.ffm中快取,寫入時把資料加上些頭資訊然後分塊,每塊4096B(每塊也有結構),當feed1.ffm的大小到了ffserver.conf中規定的大小後,就會從檔案開始(跳過頭)寫入,覆蓋舊的資料。直到網路上有播放的請求,ffserver從feed1.ffm中讀取資料,傳送給客戶端

二、配置與應用

ffserver可以配置為帶緩衝或者不帶緩衝,其中不帶緩衝的只需要配置stream的位置,不需要feed和ffmpeg。

ffserver配置檔案可以參考ffmpeg原始碼中的doc/ffserver.conf,裡邊有詳細的註釋。檔案的結構可以分為頭部資訊、實時流資訊、格式資訊。

1、不帶緩衝

最簡單的配置檔案如下

Port 9999

RTSPPort9990

BindAddress0.0.0.0

MaxClients1000

MaxBandwidth100000

CustomLog–

#只需要指定待播放的檔案的路徑以及格式資訊即可

<Streamtest.flv>

   File "/home/test.flv"

   Format flv

</Stream>

#rtsp應用

<Streamtest.mpg>

File"myfile/testvideo/test.mpg"

Format rtp

</Stream>

命令符:

1. 在終端裡輸入ffserver -f /etc/ffserver.conf

2. 在瀏覽器裡或者相關播放器地址裡輸入 http://ipAddr:port/test.flv

備註:1、Port為配置裡面的9999,檔名直接輸入流的檔名即可。

     2、實際測試flv等格式都可以播放。

3、測試需要的test.flv的可以使用ffmpeg錄製,命令是

ffmpeg -f v4l2 -s 320*240 -r 10 -i /dev/video2-vcodec flv  /test.flv

2、帶緩衝

配置檔案如下

Port 9999

RTSPPort9990

BindAddress0.0.0.0

MaxClients1000

MaxBandwidth10000

CustomLog–

<Feed feed1.ffm>

File/tmp/feed1.ffm

FileMaxSize40k

ACL allow127.0.0.1

</Feed>

<Stream test.flv>

Feedfeed1.ffm

Formatflv

BitExact

DctFastint

IdctSimple

VideoFrameRate10

VideoSize320x240

VideoBitRate64

VideoGopSize10

NoAudio

PreRoll10

StartSendOnKey

MaxTime100

</Stream>

要點:

1、實時流資料配置,其中注意檔案的位置,可以放到tmp資料夾下面,這樣會被自動清理掉。

2、每個不同的流都來自feed1.ffm,因此配置越多的流,當執行的時候,會逐個轉換,影響速度,一般不建議多配置。

3、ACL allow表示ip的地址範圍,比如ACL allow 192.168.0.0 192.168.255.255

命令符:

1. 在終端裡輸入

ffserver -f/etc/ffserver.conf

2. a.若是檔案方式則輸入

ffmpeg -i/home/test.flv http://127.0.0.1:9999/test.flv

b.若是實時視訊則輸入

3、執行客戶端命令

三、流的格式

檔案的拓展名對應一定的格式,常用的有:

拓展名

格式

flv

flv

mp4

mp4

mpg

rtp

libx264

.asf

asf

.mjpg

mjpg

.jpg

jpeg

配置例子:

Multipart JPEG

<Stream test.mjpg>

Feed feed1.ffm

Format mpjpeg

VideoFrameRate 2

VideoIntraOnly

NoAudio

Strict -1

</Stream>

Single JPEG

<Stream test.jpg>

Feed feed1.ffm

Format jpeg

VideoFrameRate 2

VideoIntraOnly

VideoSize 352x240

NoAudio

Strict -1

</Stream>

Flash

<Stream test.swf>

Feed feed1.ffm

Format swf

VideoFrameRate 2

VideoIntraOnly

NoAudio

</Stream>

ASF compatible

<Stream test.asf>

Feed feed1.ffm

Format asf

VideoFrameRate 15

VideoSize 352x240

VideoBitRate 256

VideoBufferSize 40

VideoGopSize 30

AudioBitRate 64

StartSendOnKey

</Stream>

MP3 audio

<Stream test.mp3>

Feed feed1.ffm

Format mp2

AudioCodec mp3

AudioBitRate 64

AudioChannels 1

AudioSampleRate 44100

NoVideo

</Stream>

Ogg Vorbis audio

<Stream test.ogg>

Feed feed1.ffm

Metadata title "Stream title"

AudioBitRate 64

AudioChannels 2

AudioSampleRate 44100

NoVideo

</Stream>

Real with audio only at 32 kbits

<Stream test.ra>

Feed feed1.ffm

Format rm

AudioBitRate 32

NoVideo

</Stream>

Real with audio and video at 64 kbits

<Stream test.rm>

Feed feed1.ffm

Format rm

AudioBitRate 32

VideoBitRate 128

VideoFrameRate 25

VideoGopSize 25

</Stream>

For stream coming from a file: you onlyneed to set the input filename and optionally a new format.

<Stream file.rm>

File "/usr/local/httpd/htdocs/tlive.rm"

NoAudio

</Stream>

<Stream file.asf>

File "/usr/local/httpd/htdocs/test.asf"

NoAudio

Metadata author "Me"

Metadata copyright "Super MegaCorp"

Metadata title "Test stream from disk"

Metadata comment "Test comment"

</Stream>

實測可行的例子

配置:

<Streammy.mp4>

Formatrtp

File"/home/my.mp4"

</Stream>

客戶端命令 rtsp://192.168.1.230:9990/my.mp4

埠就是rtp的埠。使用http協議不能訪問。

<Streamtest.mp4>

Feedfeed1.ffm

Formatrtp

BitExact

DctFastint

IdctSimple

VideoFrameRate10

VideoSize320x240

VideoBitRate64

VideoGopSize10

NoAudio

PreRoll10

StartSendOnKey

MaxTime100

</Stream>

客戶端命令 rtsp://192.168.1.230:9990/test.mp4

<Streamlive.h264>

Formatrtp

Feedfeed1.ffm

VideoCodeclibx264

VideoFrameRate24

VideoBitRate100

VideoSize480x272

AVPresetVideodefault

AVPresetVideobaseline

AVOptionVideoflags +global_header

AudioCodeclibfaac

AudioBitRate32

AudioChannels2

AudioSampleRate22050

AVOptionAudioflags +global_header

</Stream>

使用H.264編碼時,使用命令

ffmpeg -f v4l2 -s 176*144 -r 2 -i /dev/video0-vcodec libx264 http://192.168.1.6:8090/feed1.ffm

ffmpeg-f v4l2 -s 176*144 -r 2 -vpre libx264-hq.ffpreset

ffmpeg-f v4l2 -s 176*144 -r 10 -vpre libx264-hq.ffpreset-i /dev/video0 -vcodec libx264 -f rtprtp://192.168.1.105:6060 > /tmp/x264.sdp

四、協議

HTTP協議的地址格式為:

http://ffserver_ip_address:http_port/stream_name[options]

RTSP協議的地址格式為:

http://ffserver_ip_address:rtsp_port/stream_name[options]

Sampleffserver configuration file

Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
CustomLog -
##################################################################
<Feed feed1.ffm>
# ffmpeg http://localhost:8090/feed1.ffm
File /tmp/feed1.ffm
FileMaxSize 200K
ACL allow 127.0.0.1
</Feed>
##################################################################
<Stream test1.mpg>
Feed feed1.ffm
# Format of the stream : you can choose among:
# mpeg       : MPEG-1 multiplexed video and audio
# mpegvideo  : only MPEG-1 video
# mp2        : MPEG-2 audio (use AudioCodec to select layer 2 and 3 codec)
# ogg        : Ogg format (Vorbis audio codec)
# rm         : RealNetworks-compatible stream. Multiplexed audio and video.
# ra         : RealNetworks-compatible stream. Audio only.
# mpjpeg     : Multipart JPEG (works with Netscape without any plugin)
# jpeg       : Generate a single JPEG image.
# asf        : ASF compatible streaming (Windows Media Player format).
# swf        : Macromedia Flash compatible stream
# avi        : AVI format (MPEG-4 video, MPEG audio sound)
Format mpeg
# Bitrate for the audio stream. Codecs usually support only a few
# different bitrates.
AudioBitRate 32
# Number of audio channels: 1 = mono, 2 = stereo
AudioChannels 1
# Sampling frequency for audio. When using low bitrates, you should
# lower this frequency to 22050 or 11025. The supported frequencies
# depend on the selected audio codec.
AudioSampleRate 44100
# Bitrate for the video stream
VideoBitRate 64
# Ratecontrol buffer size
VideoBufferSize 40
# Number of frames per second
VideoFrameRate 3
# Size of the video frame: WxH (default: 160x128)
# The following abbreviations are defined: sqcif, qcif, cif, 4cif, qqvga,
# qvga, vga, svga, xga, uxga, qxga, sxga, qsxga, hsxga, wvga, wxga, wsxga,
# wuxga, woxga, wqsxga, wquxga, whsxga, whuxga, cga, ega, hd480, hd720,
# hd1080
VideoSize 160x128
# Transmit only intra frames (useful for low bitrates, but kills frame rate).
#VideoIntraOnly
# If non-intra only, an intra frame is transmitted every VideoGopSize
# frames. Video synchronization can only begin at an intra frame.
VideoGopSize 12
# More MPEG-4 parameters
# VideoHighQuality
# Video4MotionVector
# Choose your codecs:
#AudioCodec mp2
#VideoCodec mpeg1video
# Suppress audio
#NoAudio
# Suppress video
#NoVideo
#VideoQMin 3
#VideoQMax 31
# Set this to the number of seconds backwards in time to start. Note that
# most players will buffer 5-10 seconds of video, and also you need to allow
# for a keyframe to appear in the data stream.
#Preroll 15
# ACL:
# You can allow ranges of addresses (or single addresses)
#ACL ALLOW <first address> 
# You can deny ranges of addresses (or single addresses)
#ACL DENY <first address> 
# You can repeat the ACL allow/deny as often as you like. It is on a per
# stream basis. The first match defines the action. If there are no matches,
# then the default is the inverse of the last ACL statement.
#
# Thus 'ACL allow localhost' only allows access from localhost.
# 'ACL deny 1.0.0.0 1.255.255.255' would deny the whole of network 1 and
# allow everybody else.
</Stream>
##################################################################
# Example streams
# Multipart JPEG
#<Stream test.mjpg>
#Feed feed1.ffm
#Format mpjpeg
#VideoFrameRate 2
#VideoIntraOnly
#NoAudio
#Strict -1
#</Stream>
# Single JPEG
#<Stream test.jpg>
#Feed feed1.ffm
#Format jpeg
#VideoFrameRate 2
#VideoIntraOnly
##VideoSize 352x240
#NoAudio
#Strict -1
#</Stream>
# Flash
#<Stream test.swf>
#Feed feed1.ffm
#Format swf
#VideoFrameRate 2
#VideoIntraOnly
#NoAudio
#</Stream>
# ASF compatible
<Stream test.asf>
Feed feed1.ffm
Format asf
VideoFrameRate 15
VideoSize 352x240
VideoBitRate 256
VideoBufferSize 40
VideoGopSize 30
AudioBitRate 64
StartSendOnKey
</Stream>
# MP3 audio
#<Stream test.mp3>
#Feed feed1.ffm
#Format mp2
#AudioCodec mp3
#AudioBitRate 64
#AudioChannels 1
#AudioSampleRate 44100
#NoVideo
#</Stream>
# Ogg Vorbis audio
#<Stream test.ogg>
#Feed feed1.ffm
#Title "Stream title"
#AudioBitRate 64
#AudioChannels 2
#AudioSampleRate 44100
#NoVideo
#</Stream>
# Real with audio only at 32 kbits
#<Stream test.ra>
#Feed feed1.ffm
#Format rm
#AudioBitRate 32
#NoVideo
#NoAudio
#</Stream>
# Real with audio and video at 64 kbits
#<Stream test.rm>
#Feed feed1.ffm
#Format rm
#AudioBitRate 32
#VideoBitRate 128
#VideoFrameRate 25
#VideoGopSize 25
#NoAudio
#</Stream>
##################################################################
# A stream coming from a file: you only need to set the input
# filename and optionally a new format. Supported conversions:
#    AVI -> ASF
#<Stream file.rm>
#File "/usr/local/httpd/htdocs/tlive.rm"
#NoAudio
#</Stream>
#<Stream file.asf>
#File "/usr/local/httpd/htdocs/test.asf"
#NoAudio
#Author "Me"
#Copyright "Super MegaCorp"
#Title "Test stream from disk"
#Comment "Test comment"
#</Stream>
##################################################################
# RTSP examples
#
# You can access this stream with the RTSP URL:
#   rtsp://localhost:5454/test1-rtsp.mpg
#
# A non-standard RTSP redirector is also created. Its URL is:
#   http://localhost:8090/test1-rtsp.rtsp
#<Stream test1-rtsp.mpg>
#Format rtp
#File "/usr/local/httpd/htdocs/test1.mpg"
#</Stream>
# Transcode an incoming live feed to another live feed,
# using libx264 and video presets
#<Stream live.h264>
#Format rtp
#Feed feed1.ffm
#VideoCodec libx264
#VideoFrameRate 24
#VideoBitRate 100
#VideoSize 480x272
#AVPresetVideo default
#AVPresetVideo baseline
#AVOptionVideo flags +global_header
#
#AudioCodec libfaac
#AudioBitRate 32
#AudioChannels 2
#AudioSampleRate 22050
#AVOptionAudio flags +global_header
#</Stream>
##################################################################
# SDP/multicast examples
#
# If you want to send your stream in multicast, you must set the
# multicast address with MulticastAddress. The port and the TTL can
# also be set.
#
# An SDP file is automatically generated by ffserver by adding the
# 'sdp' extension to the stream name (here
# http://localhost:8090/test1-sdp.sdp). You should usually give this
# file to your player to play the stream.
#
# The 'NoLoop' option can be used to avoid looping when the stream is
# terminated.
#<Stream test1-sdp.mpg>
#Format rtp
#File "/usr/local/httpd/htdocs/test1.mpg"
#MulticastAddress 224.124.0.1
#MulticastPort 5000
#MulticastTTL 16
#NoLoop
#</Stream>
##################################################################
# Special streams
# Server status
<Stream stat.html>
Format status
# Only allow local people to get the status
ACL allow localhost
ACL allow 192.168.0.0 192.168.255.255
#FaviconURL http://pond1.gladstonefamily.net:8080/favicon.ico
</Stream>
# Redirect index.html to the appropriate site
<Redirect index.html>
URL http://www.ffmpeg.org/
</Redirect>
剛開始學習FFmpeg,很多東西不太瞭解,想看看FFmpeg推流是怎麼回事,試了網上很多網友說的方法:
1. 首先配置ffserver.conf.
其中的引數我也是基本照搬:
HTTPPort 8090
#RTSPPort 9990

HTTPBindAddress 0.0.0.0
MaxClients 1000
MaxBandwidth 100000
CustomLog -

<Feed feed1.ffm>
File feed1.ffm
FileMaxSize 50M

ACL allow localhost
ACL allow 127.0.0.1
ACL allow 192.168.40.129
ACL allow 192.168.1.85
</Feed>


<Stream test.flv>
Feed feed1.ffm
Format flv

VideoFrameRate 25
VideoSize 640x400
VideoBitRate 2000
VideoGopSize 30

PreRoll 5
StartSendOnKey
MaxTime 3

</Stream>


<Stream teststat.html>

Format status
</Stream>
2. ffserver先啟動伺服器端:ffserver -f ./tests/ffserver.conf。
3. 然後ffmpeg開始轉碼推流:ffmpeg -i /home/xxx/Vidoes/testv.mkv http://localhost:8090/feed1.ffm
4. 之後在我的windows上用迅雷播放器播放:http://192.168.40.129:8090/test.flv

看到視訊了,但是視訊播放一段時間後,問題出現了,不是播放不了了就是突然跳到另一個地方播放。從雷驍驊的部落格瞭解到,碼流解碼是非常快的(從列印的資料看是10倍於播放速度),碼流轉碼後推到feed1.ffm,快取滿後重新覆蓋之前的資料,所以播放就有問題了。這裡我有個疑問,ffserver.conf是設定了快取,但是從stat.html看目標視訊test.flv是不限制大小的一直往上漲,可能feed1.ffm才是真正的快取檔案,但是ffserver是怎麼把資料從feed1.ffm轉到test.flv的呢,網路請求播放test.flv檔案時又是從哪播放呢,這其中的邏輯不知道是怎樣的,所以問題可能就出現在這裡。按照雷神的例子,我在碼流輸出的時候限制了時間,讓碼流跟視訊播放速度同步,但是結果還是不行,播放經常斷,或者重複播放,快取顯然已經比較大,但沒播放多久這些問題就會出現。我已經限制了同步了碼流,顯然快取是不會那麼快滿的,但是播放出問題是怎麼導致的呢,我想跟剛才我提的疑問有點關係,資料是快取在feed1.ffm,但播放的檔案是test.flv,顯然中間ffserver還要把資料轉到test.flv,ffserver是怎麼轉資料的呢,客戶端的播放請求又是怎麼迴應的呢,這其中的邏輯將會影響客戶端的播放效果,從測試的結果看,同步碼流也存在問題,不知道雷神當時測試的時候是不是正常的,或者有沒有同學做過相應的測試,結果又是怎樣的呢,我不知道是不是哪個引數的問題還是哪裡的問題,如果有人測試正常的或者異常的歡迎討論一下。
在此我提出一種解決方法,我是看上面轉載的這篇文章想到的,就是不設定快取檔案feed1.ffm,直接推流到test.flv:

1、不帶緩衝

最簡單的配置檔案如下

Port 9999

RTSPPort9990

BindAddress0.0.0.0

MaxClients1000

MaxBandwidth100000

CustomLog–

#只需要指定待播放的檔案的路徑以及格式資訊即可

<Streamtest.flv>

   File "/home/test.flv"

   Format flv

</Stream>

#rtsp應用

<Streamtest.mpg>

File"myfile/testvideo/test.mpg"

Format rtp

</Stream>

命令符:

1. 在終端裡輸入ffserver -f /etc/ffserver.conf

2. 在瀏覽器裡或者相關播放器地址裡輸入 http://ipAddr:port/test.flv

備註:1、Port為配置裡面的9999,檔名直接輸入流的檔名即可。

     2、實際測試flv等格式都可以播放。

3、測試需要的test.flv的可以使用ffmpeg錄製,命令是

ffmpeg -re -i /home/xxx/Videos/test.mkv  /test.flv

結果播放的視訊就正常了,謝天謝地,分享知識和經驗的都是好人。
更新一下:
上面提到的問題是由於這幾行字引起的,註釋掉就好了
#PreRoll 5
#StartSendOnKey
#MaxTime 3

相關推薦

ffmpegffserver協同工作

本文轉自:http://www.cnblogs.com/liushunli/p/5303966.html ffmpeg和ffserver配合使用可以實現實時的流媒體服務,可以實時傳輸來自攝像頭的資料,客戶端可以採用HTTP、RTSP、RTP協議等播放視訊流。 一、

DNSGTM協同工作原理

客戶訪問www.abc.com的dns請求流程如圖:1, 首先向其所在運營商的Local DNS發起www.abc.com域名的DNS請求,步驟1;2, 運營商的Local DNS伺服器從RootDNS得知www.abc.com由DNS-CTC、DNS-CNC、DNS-USA

如何配置 Apache TomCat CE RAS 9 協同工作

本文中的知識涉及:水晶報表,水晶企業報表應用伺服器 9適用於:沒有對其它版本 TomCat 進行測試(譯者注:本文的配置方法同樣適用於 TomCat 5.x,已在 Tomcat 5.0.19 上進行了測試。)Apache TomCat部署 大綱 如何配置 Apache Tom

zookeeper kafka的協同工作

First of all, zookeeper is needed only for high level consumer. SimpleConsumer does not require zookeeper to work. The main reason zookeeper is needed

node.js redis express 和session協同工作

var RedisStore = require('connect-redis')(express); var redis_ip='192.168.238.135', redis_port ='6379' ; app.use(express.sessio

Spark學習筆記:Spark StreamingSpark SQL協同工作

Spark Streaming與Spark SQL協同工作 Spark Streaming可以和Spark Core,Spark SQL整合在一起使用,這也是它最強大的一個地方。 例項:實時統計搜尋次數大於3次的搜尋詞 package StreamingDemo i

dubbo協議下的單一長連線多執行緒併發如何協同工作

開發十年,就只剩下這套架構體系了! >>>   

FFmpeg總結(十二)用ffmpegnginx實現直播多路流並發播放

xxx 開源 conf ref itl rect arc med rtm 圖:撒哈拉沙漠 下載 nginx 和 nginx-rtmp源碼: http://nginx.org/download/nginx-1.5.10.tar.gz https://github.com/a

交換機&路由器&ARP(欺騙攻擊)工作原理

交換機 路由器 工作原理交換機工作原理(端口MAC----端口MAC) 交換機根據MAC地址表智能轉發數據幀 根據源MAC地址,自動添加到MAC地址表 根據目的MAC地址,在則轉發,不在則泛洪2.路由器工作原理:(ip---端口) 根據路由表轉發數據包,有則轉發,沒有就丟棄3.ARP:將一個已知

Android 音視頻深入 十四 FFmpegOpenSL ES 播放mp3音樂,能暫停(附源碼

FFmpeg OpenSL ES 項目地址https://github.com/979451341/FFmpegOpenslES 這次說的是FFmpeg解碼mp3,數據給OpenSL ES播放,並且能夠暫停。1.創建引擎 slCreateEngine(&engineObject,0,NULL,

Gitlab教程2 —— 多人協同工作(清晰)

onf 我們 track ron 分享圖片 自動創建 默認值 產生 文本 gitlab使用 —— 多人協同工作(重要技能) 學習鏈接: http://herry2013git.blog.163.com/blog/static/21956801120134111124075

軟件需求工程建模 -小組工作總結及成員心得

需求工程 工程 一起 xamarin nbsp 開心 學習生活 有意 可能 一、小組工作總結:   時間總是飛快流逝,為期近兩個月的學習、考試以及項目工作中,這學期又過去了。   而將目光聚集到項目上來,我們小組的項目完成度倒也是差強人意了:前期的需求獲取、分析大家都完成的

FFmpeg 媒體文件關系

ron 視頻流 使用 tex mpeg 相互 ner 媒體文件 avstream 1. 容器/文件(Container/File):即特定格式的多媒體文件,比如MP4,flv,mov等。 2. 媒體流(Stream):表示在時間軸上的一段連續的數據,比如一段聲音數據、一段視

深入剖析實戰Activiti6工作流引擎

dea ref for 數據庫 2-2 核心api 流程引擎 簡介 ogg 課程目錄第1篇 教程簡介1-1教程導學; 第2篇 工作流入門:2-1本篇概述2-2工作流簡介2-3工作流引擎技術選型2-4Activiti6.0快速體驗-部署環境簡介2-5Activiti6.0快速

java中類和對象如何協同工作, 這樣工作有什麽好處?

begin enc mark public class htm window對象 tcl 分配 4.object和Class配合工作原理 (視頻下載) (全部書籍) 【新手可忽略不影響繼續學習】 Class是"類"的意思,是抽象的,並沒有具體的說是哪個東西。而objec

使用GitGitHub協同開發並搭建私有GitLab代碼托管服務器

tlab conflict mixed its ssh 令行 mas windows安裝 emc 目錄 [TOC] Git的發展史 Linus在1991年創建了開源的Linux,從此全世界的工程師參與了Linux的開發,期初Linus是通過手動diff的方式進行代碼審核和合

ping traceroute 的工作原理分析

一、ping        ping 程式的主要目的是測試主機是否可達,它傳送 ICMP 回顯請求報文給目的主機,並等待返回 ICMP 回顯應答        ping 程式一般會週期性持續地傳送

辭職之後在家的掙扎老爸的工作

今天是2018年11月14日,離2018年6月10日,有大概接近5個月吧,這五個月,日子相當不好過啊,可能今年本命年,特別的倒黴,也可能是自己自找的,但是今年發生的事,真的我也是表示很無賴,我也沒有辦法,沒有想到會有這麼多的問題,現在在寫這篇隨筆的時候,我是離職之後,身上已經身無分文了,而且找了近一個月的工作

成功失敗取決於工作

記得有一家國內知名的國企,在2013年時整合了各個地區的集團分公司,銷售公司都搬到一塊兒地兒進行集中生產辦公。按理說這是大好事,能集中精力專註產品質量,抓好各個研發、生產、銷售環節。但由於各個分公司協調不到位,就導致了工作流程環節脫序、扯皮的事件發生。因此,國企的管理者就引

SELinux安全模型的核心思想三種工作模式

enforce 權限 永久 iss linux社區 ive con 生產 調試 什麽是SELinux?在內核2.6版本之前Linux的安全模型叫DAC(Discretionary Access Contorl,即自主訪問控制)。DAC的核心思想:進程想要訪問某資源,只需要擁