FFmpeg рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛ рд░рд╣рд╛ рд╣реИ

рдирдорд╕реНрддреЗ! рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рд╕рд╕реНрддреЗ рдХрдо-рд╢рдХреНрддрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЬреИрд╕реЗ рдЗрдВрдЯреЗрд▓ рдПрдЯрдо Z8350 рдкрд░ рдХрд╛рд░ рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд╣рдореЗрдВ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд┐рдирд╛ рдЕрдЪреНрдЫреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдерд┐рд░ рддрд╕реНрд╡реАрд░ (97% рддрдХ) рдореЗрдВ рд░реВрд╕реА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рдЕрдЪреНрдЫреЗ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдмрдЪреА рд╣реБрдИ рд╣реИ - рдЖрдИрдкреА рдХреИрдорд░рд╛ рдЕрдВрдЬреАрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ 1ред

рдЫрд╡рд┐
рдЪрд┐рддреНрд░рд╛ 1 рдЗрдВрдЯреЗрд▓ рдПрдЯрдо Z83II рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рдПрдЯреАрдЖрдИрдПрд╕ рдЖрдИрдкреА рдХреИрдорд░рд╛

FFmpeg рд╡реАрдбрд┐рдпреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рд╛рдорд╛рдиреНрдп-рдкреНрд░рдпреЛрдЬрди рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдкреВрд░реА рдореЗрд╣рдирдд рд▓реЗрддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рднреА рдбрд┐рдХреЛрдбрд┐рдВрдЧ, рдПрдиреНрдХреЛрдбрд┐рдВрдЧ, рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕рд┐рдВрдЧ рдФрд░ рдбреАрдореВрд▓рд┐рдкреНрд▓реЗрдХреНрд╕рд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдХрд╛рд░реНрдп : H.264 рдорд╛рдирдХ рдореЗрдВ рдкреВрд░реНрдг HD рдЖрдИрдкреА рдХреИрдорд░рд╛ RTSP рд╕реНрдЯреНрд░реАрдо рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдШрдЯрд┐рдд рдлреНрд░реЗрдо рдХрд╛ рдЖрдХрд╛рд░ 1920x1080 рдкрд┐рдХреНрд╕рд▓ рд╣реИ, рдЖрд╡реГрддреНрддрд┐ 25 рдлреНрд░реЗрдо рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╣реИред рд░реИрдо рдореЗрдВ рдбрд┐рдХреЛрдб рдХрд┐рдП рдЧрдП рдлрд╝реНрд░реЗрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рдбрд┐рд╕реНрдХ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ 25 рдлрд╝реНрд░реЗрдо рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдлрд╝реНрд░реЗрдо рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдбрд┐рдХреЛрдб рдХрд░реЗрдВрдЧреЗред рд▓рдХреНрд╖реНрдп рдпрд╣ рд╕реАрдЦрдирд╛ рд╣реИ рдХрд┐ FFmpeg рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВред рдЖрдк FFmpeg рджреЗрдЦреЗрдВрдЧреЗ - рдпрд╣ рдЖрд╕рд╛рди рд╣реИ!

FFmpeg рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ : рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЕрдкрдиреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП FFmpeg рдмрдирд╛рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЬрд╝реЗрд░рд╛рдиреЛ рдмрд┐рд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ , рдЬреЛ рдХрд╛рд░реНрдп рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЬрд╝реЗрд░реЗрдиреЛ рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдореЗрдВ рдбреАрдПрдХреНрд╕рдПрд╡реА 2 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рдмрд╛рдж рдореЗрдВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдХрд╛рдо рдЖрдПрдЧрд╛ред

рд╣рдо рд╕рд╛рдЗрдЯ https://ffmpeg.zeranoe.com/builds/ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ 32 рдпрд╛ 64 рдмрд┐рдЯреНрд╕ рдЪреБрдирдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 2 рд╕рд╛рдЭрд╛ рдФрд░ рджреЗрд╡ рдЕрднрд┐рд▓реЗрдЦ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рджреЗрд╡ рд╕рдВрдЧреНрд░рд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ (.lib) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИред рд╕рд╛рдЭрд╛ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХред Dll рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред

рддреЛ, C: \ рдбреНрд░рд╛рдЗрд╡ рдкрд░ ffmpeg рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВред рд╣рдо рдЗрд╕рдореЗрдВ рдбреА рдЖрд░реНрдХ рд╕реЗ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВрдЧреЗред

FFmpeg рдХреЛ Visual Studio 2017 рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛: рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░реЙрдкрд░реНрдЯреАрдЬ (рдкреНрд░реЛрдЬреЗрдХреНрдЯ - рдкреНрд░реЙрдкрд░реНрдЯреАрдЬ) рдкрд░ рдЬрд╛рдПрдВред рдЕрдЧрд▓рд╛, C / C ++ рдФрд░ "рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛" рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВ: "C: \ ffmpeg \ dev \ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ;"ред рдЙрд╕рдХреЗ рдмрд╛рдж, рд▓рд┐рдВрдХрд░-рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ "C: \ ffmpeg \ dev \ lib;" рдХрд╛ рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВред рд╡рд╣ рд╕рдм рд╣реИред FFmpeg рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИред

FFmpeg рдХреЗ рд╕рд╛рде рдкрд╣рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛: рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡реАрдбрд┐рдпреЛ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдФрд░ рдбрд┐рд╕реНрдХ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ 25 рдлреНрд░реЗрдо рдХреА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧред FFmpeg рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдЕрдВрдЬреАрд░ 2 рдХреЗ рдмреНрд▓реЙрдХ рдЖрд░реЗрдЦ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдЫрд╡рд┐
рдЕрдВрдЬреАрд░ред 2 рдПрдХ рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмреНрд▓реЙрдХ рдЖрд░реЗрдЦред

рдпрд╣рд╛рдБ C ++ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рд╣реИ
// 21  2019 //  ,  ,   http://dranger.com/ffmpeg/tutorial01.html // #include "pch.h" extern "C" { #include <libavcodec/avcodec.h> #include <libavformat/avformat.h> #include <libswscale/swscale.h> #include <libavformat/avio.h> #include <libavutil/pixdesc.h> #include <libavutil/hwcontext.h> #include <libavutil/opt.h> #include <libavutil/avassert.h> #include <libavutil/imgutils.h> #include <libavutil/motion_vector.h> #include <libavutil/frame.h> } <cut /> #include <stdio.h> #include <stdlib.h> #include <string.h> #pragma comment(lib, "avcodec.lib") #pragma comment(lib, "avformat.lib") #pragma comment(lib, "swscale.lib") #pragma comment(lib, "avdevice.lib") #pragma comment(lib, "avutil.lib") #pragma comment(lib, "avfilter.lib") #pragma comment(lib, "postproc.lib") #pragma comment(lib, "swresample.lib") #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable : 4996) // compatibility with newer API #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,28,1) #define av_frame_alloc avcodec_alloc_frame #define av_frame_free avcodec_free_frame #endif void SaveFrame(AVFrame *pFrame, int width, int height, int iFrame) { FILE *pFile; char szFilename[32]; int y; //        sprintf(szFilename, "frame%d.ppm", iFrame); pFile = fopen(szFilename, "wb"); if (pFile == NULL) return; //    fprintf(pFile, "P6\n%d %d\n255\n", width, height); //    for (y = 0; y < height; y++) fwrite(pFrame->data[0] + y * pFrame->linesize[0], 1, width * 3, pFile); //   fclose(pFile); } <cut /> int main(int argc, char *argv[]) { AVFormatContext *pFormatCtx = NULL; int i, videoStream; AVCodecContext *pCodecCtxOrig = NULL; AVCodecContext *pCodecCtx = NULL; AVCodec *pCodec = NULL; AVFrame *pFrame = NULL; AVFrame *pFrameRGB = NULL; AVPacket packet; int frameFinished; int numBytes; uint8_t *buffer = NULL; struct SwsContext *sws_ctx = NULL; if (argc < 2) { printf("Please provide a movie file\n"); return -1; } //      av_register_all(); //     if (avformat_open_input(&pFormatCtx, argv[1], NULL, NULL) != 0) return -1; //     //      if (avformat_find_stream_info(pFormatCtx, NULL) < 0) return -1; //     : , ,    av_dump_format(pFormatCtx, 0, argv[1], 0); //    videoStream = -1; for (i = 0; i < pFormatCtx->nb_streams; i++) if (pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) { videoStream = i; break; } if (videoStream == -1) return -1; //   <cut /> //      pCodecCtxOrig = pFormatCtx->streams[videoStream]->codec; //      pCodec = avcodec_find_decoder(pCodecCtxOrig->codec_id); if (pCodec == NULL) { fprintf(stderr, "Unsupported codec!\n"); return -1; //    } //   pCodecCtx = avcodec_alloc_context3(pCodec); if (avcodec_copy_context(pCodecCtx, pCodecCtxOrig) != 0) { fprintf(stderr, "Couldn't copy codec context"); return -1; //   } //   if (avcodec_open2(pCodecCtx, pCodec, NULL) < 0) return -1; //     //     pFrame = av_frame_alloc(); //      RGB pFrameRGB = av_frame_alloc(); if (pFrameRGB == NULL) return -1; //        numBytes = avpicture_get_size(AV_PIX_FMT_RGB24, pCodecCtx->width, pCodecCtx->height); buffer = (uint8_t *)av_malloc(numBytes * sizeof(uint8_t)); //      . avpicture_fill((AVPicture *)pFrameRGB, buffer, AV_PIX_FMT_RGB24, pCodecCtx->width, pCodecCtx->height); //  SWS context       RGB sws_ctx = sws_getContext(pCodecCtx->width, pCodecCtx->height, pCodecCtx->pix_fmt, pCodecCtx->width, pCodecCtx->height, AV_PIX_FMT_RGB24, SWS_BILINEAR, NULL, NULL, NULL ); <cut /> //     25    i = 0; while (av_read_frame(pFormatCtx, &packet) >= 0) { //    ? if (packet.stream_index == videoStream) { //    avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished, &packet); //    ? if (frameFinished) { //    RGB sws_scale(sws_ctx, (uint8_t const * const *)pFrame->data, pFrame->linesize, 0, pCodecCtx->height, pFrameRGB->data, pFrameRGB->linesize); //     if (++i % 25 == 0) SaveFrame(pFrameRGB, pCodecCtx->width, pCodecCtx->height,i); } } //   av_free_packet(&packet); } //      av_free(buffer); av_frame_free(&pFrameRGB); av_frame_free(&pFrame); avcodec_close(pCodecCtx); avcodec_close(pCodecCtxOrig); avformat_close_input(&pFormatCtx); return 0; } 


рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдЖрдИрдкреА рдХреИрдорд░реЗ рдореЗрдВ рдЖрдИрдкреА 192.168.1.168 рд╣реИ, рдлрд┐рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЙрд▓:

 decode.exe rtsp://192.168.1.168 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЙрджрд╛рд╣рд░рдг рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд┐рдХреЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдЗрд╕рдХреЗ рд╕реНрдерд╛рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдбрд┐рдХреЛрдб рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдлрд╝реНрд░реЗрдо рдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд╕рд╣реЗрдЬрдирд╛ рд╕реАрдЦрд╛ред рдлрд╝реНрд░реЗрдо рдХреЛ .ppm рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдЗрди рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдЗрд░рдлрд╛рдирд╡реНрдпреВ 64 рдпрд╛ рдЬреАрдЖрдИрдПрдордкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдирд┐рд╖реНрдХрд░реНрд╖: RTSP рдлреБрд▓ HD H.264 рд╕реНрдЯреНрд░реАрдо рдХрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рджреЛ Intel ATOM Z8350 рдХреЛрд░ рддрдХ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреИрдХреЗрдЯ рдХреА рд╣рд╛рдирд┐ рд╕рдордп-рд╕рдордп рдкрд░ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдлрд╝реНрд░реЗрдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдбрд┐рдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рд░рд┐рдХреЙрд░реНрдб рдХреА рдЧрдИ рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд┐рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдСрдкрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ RTSP рд╕реНрдЯреНрд░реАрдо рдХреЛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рдХреИрд╕реЗ рдбрд┐рдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдкреБрд░рд╛рд▓реЗрдЦ

рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо

FFmpeg рдкрд░ рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдВрдХ:


1. FFmpeg рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓, рдереЛрдбрд╝рд╛ рдкреБрд░рд╛рдирд╛ред
2. FFmpeg рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реАред
3. FFmpeg рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╡рд┐рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реАред

Source: https://habr.com/ru/post/hi449198/


All Articles