當前位置:首頁 » 安全設置 » ffmpeg設置網路代理
擴展閱讀
像素密度最高的平板電腦 2025-08-03 08:09:13
電腦開機黑屏出現橫紋 2025-08-03 08:02:22
網路安全人員是it民工 2025-08-03 07:54:02

ffmpeg設置網路代理

發布時間: 2022-08-08 04:42:36

❶ ffmpeg使用方法

FFmpeg程序把-i參數指定的若干文件內容讀入到內存,按照輸入的參數或者程序默認的參數來處理並且把結果寫入到若乾的文件中。輸入和輸出文件可以是計算機文件、管道、網路流、捕獲設備等。

如何一邊錄制視頻一邊讓它在網路上直播

沒有辦法。

一般都是先錄制下來再傳上去的。非要一邊錄制一邊上傳,電腦配置不好可能都死機了。也沒有這樣的平台提供。

錄屏軟體推薦:

1、Captura

一款免費開源的錄屏軟體,下載之後默認的是英文,需要手動改成中文。

全屏錄制、區域錄制、窗口錄制都是可以的,並且區域錄制的時候可以隨時更改區域位置和大小,這個也算是比較有特點的。

視頻文件支持MP4和AVI兩種格式,也支持GIF錄制和截圖。

不過下載之後可能會出現不能用的情況,需要在設置中下載FFmpeg,下載完成後就能正常使用了。

2、ScreenToGif

一款免費開源的錄屏軟體,沒有任何廣告,體積輕巧功能豐富的軟體。

有錄制屏幕、錄制攝像頭、錄制畫板三種模式,我最常用的應該是錄像機,拖動邊框改變大小之後,就可以錄制了。

除了操作簡單外,它的編輯功能也很實用,制好之後可以直接編輯,刪除幀數、裁剪尺寸、添加馬賽克等等,別的GIF錄制軟體很少有那麼全的。

錄制好之後可以保存為GIF或者視頻,視頻支持AVI格式,而且不支持音頻錄制。

3、迅捷屏幕錄像工具

一款好用的國產錄屏錄制軟體,體積只有3M,不會過多的佔用電腦內存。

主頁設計也非常簡潔,錄屏需要修改參數的話只要點幾下就好,不用層層修改,操作比較方便。

功能還是很豐富的,不管是錄制視頻、網課還是軟體操作類的視頻都可以滿足。

這里說一下,因為很多設置可以在主頁完成,很多人就忽略了設置里的功能,大家比較關心的錄制滑鼠指針功能就在設置里。

滑鼠效果的顏色是可以自己修改的,我的是默認的,顏色還不錯,就懶得修改了。

4、oCam

一款免費易上手的的錄屏軟體,雖然界面的UI有點老,但是還是好用的。

除了支持全面屏錄制、區域錄制,還支持固定尺寸錄制,比如可以直接Youyube的尺寸,還是很方便的。

錄制之後的文件可保存為MP4、MKV、M4V、FLV、GIF等格式,能滿足我們平時錄屏的不同需求。

除了錄制視頻以外,它還可以錄制音頻、游戲、GIF、和截圖,截圖在錄屏的過程中也是支持的,功能還是很豐富的。

還有那些文件保存的位置、錄制是否包含滑鼠等等,都可以自己在設置中進行設置。

5、Bandicam

一款韓國開發的錄屏軟體,與其他錄屏軟體的相同的是可以全屏錄制、矩形錄制和自定義窗口錄制,還支持截圖。

不同的是,它可以定時錄制,包括設置開始時間、結束時間、錄制目標等等,一種完全不一樣的體驗。

在使用前需要將麥克風設置為默認設備,不然可能會出現錄制的視頻沒有聲音的情況。

❸ 想要使用ffmpeg來完成如下兩個功能: 1.視頻截圖 2.視頻分割功能

http://ffmpeg.org/ffmpeg.html
我最近也在做ffmpeg+ffserver實現流媒體伺服器及時轉碼發送,

代碼的功能只能在官網查。。

國內探討這方面的人太少了。在谷歌搜國外的FFmpeg論壇也有不少東西。

❹ 如何利用VLC或FFMPEG將HTTP的串流轉換成RTMP

這個應用主要是將HTTP的串流(非HLS或DASH)轉換成RTMP協議傳送到Adobe Flash Media Server或Wowza Media Server的媒體伺服器。

根據維基網路: 「Real Time Messaging Protocol (RTMP) was initially a proprietary protocol developed by Macromedia for streaming audio, video and data over the Internet, between a Flash player and a server. Macromedia is now owned by Adobe, which has released an incomplete version of the specification of the protocol for public use.」

RTMP的協議有以下的參數:

RTMP: 其原始採用TCP port 1935
RTMPS: 將RTMP載入到SSL的安全機制,就類似HTTPS。
RTMPE: 採用Adobe所提供給RTMP所發展的加密版本。
RTMPT: 在RTMP上加掛he RTMP protocol 封裝在HTTP請求中,可以穿越防火牆。這是一個很不錯的協議,使用TCP埠80和443繞過公司對防火牆。封裝的會話可能攜帶純RTMP,RTMPS或RTMPE包內。
RTMP 串流
VLC 在 2.0.x版本里可以支持RTMP協議。不過,有些環境卻沒法執行,例如2.0.2, 2.0.3, 2.0.4, 2.0.6在Windows 2008 Server 64的伺服器上確實沒法執行。可以開啟VLC然後開啟網路串流,如「RTMP://aaa.bbb.com:1935/live/串流源「,看看可否開啟。主要是VLC 2.0.x採用 ffmpeg/libav的程序庫,但是, 有的包裝卻沒法支持。所以必須先做確認。當 librtmp 的支持被啟動於 ffmpeg/libav 則RTMPS才可以有功用。

VLC和RTMP的情形主要是用來捕獲和轉碼應用程序生成一個單一的流。是通過另一個應用程序分配給多個客戶端。這在Wowza是非常重要的。雖然,Wowza也支持VLC採用UDP/RTP/RTSP方式接收串流,但是,很多情況下是很不穩定的。

LC直接連接到一個的RTMP串流,如WOWZA,不聽傳入的請求。因此,它是不可能的,以查看的RTMP流直接從VLC。您需要連接到WOWZA,觀看流。這是可以用VLC做到的:

$ vlc rtmp://rtmp.server.com:1935/path/to/stream有件事必須提醒的。從VLC將RTMP串流傳送給Wowza伺服器並不是都很穩定的。有一些時間關系的「蟲」會造成Wowza關閉連線。 這樣的問題都是與「音頻」與」視頻「時間戳(Timestamp)有關系的。採用「audio-desync」 選項來整合RTMP也不是個好點子,但是, 可以不斷調整與修改。

Webcam RTMP streaming
以下是有關webcam的應用。其他的有採集裝置、設備、視頻文檔等應用。

Windows 的範例
在windows的採集裝置都是利用DirectShow這個界面的。在VLC的模塊也是用這樣的界面,成為「DirectShow「或」dshow」。以下是範例:

$ vlc dshow://"" --sout '#transcode{vcodec=h264,vb=300,fps=25,scale=1,acodec=mp4a,ab=64,channels=2}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://rtmp.server.com:1935/path/to/stream}'DirectShow選項也可在QT界面里採用

Linux 的範例
通常在Linux的採集裝置上都是採用「video for linux」 (v4l2)這個界面。使用指令方式來採集webcam裝置(或稱為」v4l2 裝置」)送出RTMP串流的範例如下:

$ vlc v4l2:// --v4l2-fps=25 --sout '#transcode{vcodec=h264,vb=300,fps=25,scale=1,acodec=mp4a,ab=64,channels=2}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://rtmp.server.com:1935/path/to/stream}'這個例子可以自動偵測 v4l2 裝置並且選擇第一個裝置來採集訊號。其他的參數選項如視頻標准(PAL, NTSC)、Chroma、寬度、長度等等可以自行設置。必須要注意的是,這些參數設置跟本身的設備有關。 當我門使用debug模式 (-vvv),VLC自身的video for linux (v4l2) 模塊會顯示出執行時所出現的數值訊息。v4l2 模塊提供以下可作為優化的選項:

–v4l2-dev=: 指定所要採集的特定裝置
–v4l2-standard=: 使用哪種視頻標准,例如: SECAM, PAL, NTSC and more
–v4l2-width=: 視頻呈現的寬度(in pixels)
–v4l2-height=: 視頻呈現的長度度(in pixels)
以上是描述有關v4l2的參數選項。完整的v4l2模塊訊息,可以利用下面的指令查詢。

$ vlc -H -p v4l2 --advanced以下是另一個將http串流轉碼(transcode)到RTMP給Adobe Flash Media Server或Wowza Media Server等視頻伺服器

cvlc -I mmy http://orginalstreamIPaddress:50014 --sout-mux-caching=5000 --sout='#transcode{venc=x264{keyint=60},vcodec=h264,vb=800}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://destinationIPaddress:1935/live/StreamFile}}' &這是用ffmpeg的方法:

ffmpeg -i http://OriginalIPAddress:50010 -vcodec libx264 -vb 800k -acodec libfaac -ab 64k -f flv rtmp://DestinationIPAddress:1935/live/StreamFile

❺ 如何使用FFMPEG+H264實現RTP傳輸數據

開發環境:
WINDOWS7 32bit
MINGW
eclipse juno cdt
1、首先你要編譯好FFMPEG,
a) 方法一:可以去官網下載源碼,用MINGW編譯(編譯時記得支持H264,當然,事先得下載並編譯好libx264,視頻技術論壇里有很多介紹)
b) 方法二:更加省心省力的方法是,下載別人已經編譯好的資源,如ZeranoeFFmpeg的,下載他的dev版本,包含了頭文件,鏈接庫等必須的東西,當然,這東西已經是支持H264的了。
2、以下的就是代碼部分了:
a) 先聲明必要的變數:
AVFormatContext *fmtctx;
AVStream *video_st;
AVCodec *video_codec;
const int FPS = 25; /* 25 images/s */
const char *RDIP = 「127.0.0.1」;
unsigned int RDPORT = 5678;
const unsigned int OUTWIDTH = 720;
const unsigned int OUTHEIGHT = 480;
av_register_all();
avformat_network_init();

b) 初始化AV容器
fmtctx = avformat_alloc_context();

c) 獲得輸出格式,這里是RTP網路流
fmtctx->oformat = av_guess_format("rtp", NULL, NULL);

d)打開網路流
snprintf(fmtctx->filename, sizeof(fmtctx->filename),"rtp://%s:%d",RDIP,RDPORT);
avio_open(&fmtctx->pb,fmtctx->filename, AVIO_FLAG_WRITE)

e) 開始添加H264視頻流
video_st = NULL;video_st = add_video_stream(fmtctx, &video_codec, AV_CODEC_ID_H264);

其中,add_video_stream函數為:
add_video_stream(AVFormatContext *oc,AVCodec **codec, enum AVCodecID codec_id)
{
AVCodecContext *c;
AVStream *st;
/* find the video encoder */
*codec = avcodec_find_encoder(codec_id);
st = avformat_new_stream(oc, *codec);
c = st->codec;
avcodec_get_context_defaults3(c, *codec);
c->codec_id = codec_id;
c->width = OUTWIDTH;
c->height = OUTHEIGHT;
c->time_base.den = FPS;
c->time_base.num = 1;
c->pix_fmt = PIX_FMT_YUV420P;
if(oc->oformat->flags & AVFMT_GLOBALHEADER)
c->flags|= CODEC_FLAG_GLOBAL_HEADER;
av_opt_set(c->priv_data, "preset", "ultrafast", 0);
av_opt_set(c->priv_data, "tune","stillimage,fastdecode,zerolatency",0);
av_opt_set(c->priv_data, "x264opts","crf=26:vbv-maxrate=728:vbv-bufsize=364:keyint=25",0);return st;}
// OPEN THE CODE
avcodec_open2(video_st->codec, video_codec, NULL);
/* Write the stream header, if any. */
avformat_write_header(fmtctx, NULL);

f) 現在,就可以不斷的編碼數據,並發生數據了
AVFrame* m_pYUVFrame = avcodec_alloc_frame();
while(1) //這里設置成無限循環,你可以設置成250,或其他數進行測試,觀看結果
{
fill_yuv_image(m_pYUVFrame, video_st->codec->frame_number,OUTWIDTH, OUTHEIGHT);
/* encode the image */
AVPacket pkt;
int got_output = 0;
av_init_packet(&pkt);
pkt.data = NULL; // packet data will be allocated by the encoder
pkt.size = 0;
pkt.pts = AV_NOPTS_VALUE;
pkt.dts =AV_NOPTS_VALUE;
m_pYUVFrame->pts = video_st->codec->frame_number;
ret = avcodec_encode_video2(c, &pkt,frame, &got_output);
if (ret < 0) {fprintf(stderr, "Error encoding video frame: %s\n", av_err2str(ret));
exit(1);
}
/* If size is zero, it means the image was buffered. */
if (got_output)
{
if (c->coded_frame->key_frame)pkt.flags |= AV_PKT_FLAG_KEY;
pkt.stream_index = st->index;
if (pkt.pts != AV_NOPTS_VALUE )
{
pkt.pts = av_rescale_q(pkt.pts,video_st->codec->time_base, video_st->time_base);
}
if(pkt.dts !=AV_NOPTS_VALUE )
{
pkt.dts = av_rescale_q(pkt.dts,video_st->codec->time_base, video_st->time_base);
}
/* Write the compressed frame to the media file. */
ret = av_interleaved_write_frame(oc,&pkt);
}
else {
ret = 0;
}
}

g) Fill_yuv_image函數:
/* Prepare a mmy image. */
static void fill_yuv_image(AVPicture *pict,int frame_index,int width, int height)
{
int x, y, i;
i = frame_index;
/* Y */
for (y = 0; y < height; y++)
for (x = 0; x < width; x++)
pict->data[0][y * pict->linesize[0] +x] = x + y + i * 3;
/* Cb and Cr */
for (y = 0; y < height / 2; y++)
{
for (x = 0; x < width / 2; x++)
{
pict->data[1][y * pict->linesize[1] +x] = 128 + y + i * 2;
pict->data[2][y * pict->linesize[2] +x] = 64 + x + i * 5;
}
}
}

h) 列印sdp信息,僅需一次,列印的sdp信息,用在VLC播放器結束網路視頻流時用到
//列印sdp信息
char sdp[2048];
av_sdp_create(&fmtctx,1, sdp, sizeof(sdp));
printf("%s\n",sdp);
fflush(stdout);

i)最後,做一些清理工作
avcodec_free_frame(&m_pYUVFrame);
av_write_trailer(fmtctx);
/* Free the streams. */
for (unsigned int i = 0; i< fmtctx->nb_streams;i++)
{
av_freep(&fmtctx->streams->codec);
av_freep(&fmtctx->streams);
}
if(!(fmtctx->oformat->flags& AVFMT_NOFILE))
/* Close the output file. */
avio_close(fmtctx->pb);
/*free the stream */
av_free(fmtctx);

3、編譯代碼,記得添加庫文件,運行一次代碼,不用死循環,設置不用循環,因為是要讓他列印出sdp文件的信息。得到sdp信息,比如我精簡成如下:
c=IN IP4 127.0.0.1
m=video 56782 RTP/AVP 96
a=rtpmap:96 H264/90000
a=framerate:25
a=fmtp:96 packetization-mode=1

把這些信息保存到一個文本文件,並改名為sdp後綴,如mySDP.sdp。
4、從官網下載VLC播放器,重新運行上述的代碼,這一次要循環,具體循環多久,你自己決定,這一次是正式測試了。代碼跑起來後,把剛剛的sdp文件用VLC打開,直接把sdp文件拖到VLC播放器中就行了。等待緩沖,就可以看到效果了。
5、代碼中剩掉了出錯檢查部分,請自行添加。
6、關於IP地址,這里是127.0.0.1,是供本機測試,可以改成制定的接受數據的電腦IP地址,或者廣播地址IP地址。

❻ 怎樣使用ffmpeg函數接收rtsp 網路數據

RTP: Real-time Transport Protocol,實傳輸協議般用於媒體數據傳輸
RTCP: RTP Control Protocol實傳輸控制協議同RTP起用於數據傳輸監視控制功能
RTSP: Real Time Streaming Protocol,實流協議用於媒體數據流控制播放暫停等
RTP/RTCP相於底層傳輸層RTSPSIP等層協議起實現視頻議視頻直播等應用 rtsp發起/終結流媒體(通sdp)
rtp傳輸流媒體數據
rtcprtp進行控制同步RTSP請求主要DESCRIBE,SETUP,PLAY,PAUSE,TEARDOWN,OPTIONS等顧名思義知道起控製作用
RTP/RTCP實際傳輸數據協議
RTP傳輸音頻/視頻數據PLAYServer發送Client端RECORD由Client發送Server
RTCP包括Sender ReportReceiver Report用進行音頻/視頻同步及其用途種控制協議 RTSP程SETUP確定RTP/RTCP使用埠PLAY/PAUSE/TEARDOWN始或者停止RTP發送等等 (ixmy)

❼ window下ffmpeg怎麼解決 在線等 對其不熟 只想用

1、准備工作:

在幹活之前,先把下面五個軟體下載下來。

1)MinGW-MSYS Bundle http://sourceforge.net/projects/mingwbundle/

2) SDL http://www.libsdl.org/download-1.2.php

3)yasm http://yasm.tortall.net/Download.html

4)FFmpeg http://www.ffmpeg.org/download.html

5)pthreadgc2.dll http://www.dll-files.com/dllindex/dll-files.shtml?pthreadgc2

2、安裝MinGW-MSYS Bundle軟體

網上99%的方法都是先安裝mingw,再通過網路下載的方法來安裝mingw和msys軟體。安裝好之後,還需要通過煩瑣的配置,來搭建編譯環境。sourceforge開源平台給大家帶來了福音,MinGW-MSYS Bundle軟體同時包含了MinGW和MSYS,不需要連接網路進行安裝,並且包含了最新的核心組件和庫文件。

按照軟體默認的安裝向導,一路Next,把軟體安裝好。我是把軟體裝在了C盤。

3、安裝SDL

到上文列出的SDL官方網站地址,下載SDL源碼包。咱下載SDL最新的源碼包SDL-1.2.15.tar.gz。

到ffmpeg網站,下在ffmpeg源碼包,咱下的是最新的版本ffmpeg-1.2.1.tar.gz

把ffmpeg解壓縮到C:\msys\1.0\ffmpeg-1.2.1\ffmpeg-1.2.1\ 目錄,再把SDL解壓縮到C:\msys\1.0\ffmpeg-1.2.1\ffmpeg-1.2.1\SDL-1.2.15目錄。

進入SDL目錄,分別執行

./configure --prefix=/usr

make

make install

完成SDL的安裝。

SDL編譯完成之後,生成的bin文件、include文件、lib文件存放在C:\msys\1.0\local\SDL目錄下。

通過下面命令導入SDL環境變數.

export PATH="$PATH:/usr/local/SDL/bin:/usr/local/SDL/include/SDL:/usr/local/lib"

否則,在執行ffmpeg configure時,SDL support項顯示為no.(註:mingw默認根目錄對應與windows下的C:\msys\1.0\目錄,可以通過echo $PATH查看當前的系統路徑)

4、安裝yasm

到yasm官方網站,下載最新的1.2.0版本的yasm源碼包Source .tar.gz。
解壓到C:\msys\1.0\ffmpeg-1.2.1\yasm-1.2.0目錄。

進入yasm目錄,分別執行:

./configure --prefix=/usr/local/yasm

make

make install

並通過下面命令導入yasm環境變數。

export PATH="$PATH:/usr/local/yasm/bin"

5、安裝ffmpeg

進入ffmpeg代碼目錄C:\msys\1.0\ffmpeg-1.2.1\ffmpeg-1.2.1\, 分別執行下面命令:

./configure --enable-shared --disable-static --enable-memalign-hack

make

make install

編譯完成後,在C:\MinGW\msys\1.0的bin、include和lib文件夾下可以看到編譯結果。

make install 之後,ffplay.exe 、ffmpeg.exe等可執行程序安裝到C:\MinGW\msys\1.0\bin路徑下。