xingtao / ffdynamic Goto Github PK
View Code? Open in Web Editor NEWLibrary with dynamic audio/video composition and runtime control
License: MIT License
Library with dynamic audio/video composition and runtime control
License: MIT License
Hello, Xingtao.
I'm trying to use Ial(interactive live) but didn't get the results as expectation.
I ran the Ial ./ialService ialConfig.json
and requested to create a room like
curl -XPOST http://127.0.0.1:8080/api1/ial/create_room -d '{"room_id" : "room1", "input_urls" : ["/root/1.mp4", "/root/2.mp4", "/root/3.mp4"], "room_output_base_url": "/root/out/"}'
then I thought I can get the resulted(merged) a video from /roo/out
but I couldn't.
Could you tell me what i missed or misunderstood?
Version:
In file included from /Users/viktor/Documents/work/FFdynamic/apps/interactiveLive/ialMain.cpp:10:
In file included from /Users/viktor/Documents/work/FFdynamic/apps/interactiveLive/ialService.h:3:
In file included from /Users/viktor/Documents/work/FFdynamic/apps/interactiveLive/../appCommon/appService.h:16:
/Users/viktor/Documents/work/FFdynamic/tools/httpUtil/httpServer.h:92:83: error:
no member named 'get_io_service' in
'boost::asio::basic_stream_socket<boost::asio::ip::tcp,
boost::asio::executor>'
...= unique_ptr<asio::steady_timer>(new asio::steady_timer(m_socket->get_io...
3 warnings and 1 error generated.
make[2]: *** [CMakeFiles/ialService.dir/ialMain.cpp.o] Error 1
make[1]: *** [CMakeFiles/ialService.dir/all] Error 2
make: *** [all] Error 2
I'm trying to use FFDynamic for more of switching application between multiple inputs. My layout is always eSingle_1. I'm trying to figure out which of the input must be chosen for display amongst may inputs. It looks like its always the first input gets displayed. I tried with options such as ""cells" : [{"layer": -1}, {"layer":1}]" but nothing seem to change the input that is being displayed. Any help is appreciated here
Another issue that I found is with video resolution. Even though I set "avdict_encode_option": {"width" : "256", "height" : "144"}, it doesnt seem to be taking this width and height and displaying based on input resolution
系统:ubuntu 16.04
环境:已经安要求安装 FFMpeg, glog, cmake,oost, protobuf3
一 : 执行/FFdynamic/FFdynamic目录下的 build.sh
出现以下异常
[ 65%] Building CXX object CMakeFiles/ffdynamic.dir/davStreamlet/davStreamletBuilder.cpp.o
[ 68%] Building CXX object CMakeFiles/ffdynamic.dir/davTools/audioResample/audioResample.cpp.o
[ 70%] Building CXX object CMakeFiles/ffdynamic.dir/davTools/globalSignalHandle/globalSignalHandle.cpp.o
[ 73%] Linking CXX shared library libffdynamic.so
/usr/bin/ld: /usr/local/lib/libavformat.a(aviobuf.o): relocation R_X86_64_32 against `ffurl_context_class' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libavformat.a: 无法添加符号: 错误的值
collect2: error: ld returned 1 exit status
CMakeFiles/ffdynamic.dir/build.make:829: recipe for target 'libffdynamic.so' failed
make[2]: *** [libffdynamic.so] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/ffdynamic.dir/all' failed
make[1]: *** [CMakeFiles/ffdynamic.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
二:尝试执行/FFdynamic/apps/interactiveLive 目录下的build.sh
出现以下异常
[ 58%] Building CXX object FFdynamic/CMakeFiles/ffdynamic.dir/davTools/globalSignalHandle/globalSignalHandle.cpp.o
[ 59%] Linking CXX shared library libffdynamic.so
/usr/bin/ld: /usr/local/lib/libavformat.a(aviobuf.o): relocation R_X86_64_32 against `ffurl_context_class' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libavformat.a: 无法添加符号: 错误的值
collect2: error: ld returned 1 exit status
FFdynamic/CMakeFiles/ffdynamic.dir/build.make:829: recipe for target 'FFdynamic/libffdynamic.so' failed
make[2]: *** [FFdynamic/libffdynamic.so] Error 1
CMakeFiles/Makefile2:125: recipe for target 'FFdynamic/CMakeFiles/ffdynamic.dir/all' failed
make[1]: *** [FFdynamic/CMakeFiles/ffdynamic.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
想问下,可能是什么愿意导致的?
I'm trying to use the ial app in the docker container. The ialService server compiles and starts fine.
But when I try to test it with the included script, it fails with this stamge AttributeError.
I'm running the test still from the container, after having installed requests and protobuf via pip3.
(protobuf-3.11.3)
root@e6178dcc46a3:/tmp/workdir/FFdynamic/apps/interactiveLive/testScripts# python3 testIal.py
Traceback (most recent call last):
File "testIal.py", line 10, in <module>
import davStreamletSetting_pb2 as streamlet
File "../build/protos/davStreamletSetting_pb2.py", line 14, in <module>
import davWaveSetting_pb2 as davWaveSetting__pb2
File "../build/protos/davWaveSetting_pb2.py", line 22, in <module>
create_key=_descriptor._internal_create_key,
AttributeError: module 'google.protobuf.descriptor' has no attribute '_internal_create_key'
Any idea about how to fix this? Is it a problem with the version of protobuf I use?
Hi, I want to know how to get the output urls?
Many thanks, can you give an example?
Hi! First of, thanks for the project!
I'm having some issues testing the IAL app.
Here are the requests I'm sending:
wget 127.0.0.1:8080/api1/ial/create_room --post-data '{"room_id":"test", "input_urls":["/srv/resources/video.mp4", "/srv/resources/video.copy.mp4"], "room_output_base_url": "/srv/resources/", "output_stream_infos": [{"output_setting_id": "720p_2000kb"}]}'
and
wget 127.0.0.1:8080/api1/ial/create_room --post-data '{"room_id":"test", "input_urls":["/srv/resources/video.mp4", "/srv/resources/video.copy.mp4"], "room_output_base_url": "/srv/resources/", "output_stream_infos": [{"output_setting_id": "1080p_4000kb", "output_urls": ["/srv/resources/output_1080p.flv"]} ]}'
Both requests generate an empty output file (zero bytes).
ffprobe -show_format test_720p_2000kb_0
test_720p_2000kb_0: Invalid data found when processing input
ffprobe -show_format output_1080p.flv
output_1080p.flv: Invalid data found when processing input
There are no errors in the logs. However there are some "invalid argument" in the muxer section:
appService.cpp:140] [FFMPEG][mpegts]Application provided invalid, non monotonically increasing dts to muxer in stream 0: -3000 >= -3000
ffmpegMux.cpp:99] [Mux-ffmpeg3] {code:-22, detail: Invalid argument, mux do interleave write fail}
davImpl.cpp:96] [Mux-ffmpeg3] {code:-22, detail: Invalid argument, Invalid argument, mux do interleave write fail}
davProc.cpp:166] [Mux-ffmpeg3] {code:-1229211973, detail: Imp - failed on dynamic initialization, Fail with proc's process, quit proc thread. Invalid argument, Invalid argument, mux do interleave write fail}
Also the last log shows empty stat:
out stat: {}}
Any idea of what could be the problem?
I'm using the provided config file.
Also here are some info about ffmpeg and the input:
ffprobe -show_format video.mp4
ffprobe version 4.0.6 Copyright (c) 2007-2020 the FFmpeg developers
built with gcc 9 (Ubuntu 9.3.0-17ubuntu1~20.04)
configuration: --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-avresample --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-gpl --enable-libass --enable-fontconfig --enable-libfreetype --enable-libvidstab --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxcb --enable-libx265 --enable-libxvid --enable-libx264 --enable-nonfree --enable-openssl --enable-libfdk_aac --enable-postproc --enable-small --enable-version3 --enable-libbluray --enable-libzmq --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-libopenjpeg --enable-libkvazaar --enable-libaom --extra-libs=-lpthread --enable-libsrt --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2016-01-21T17:26:11.000000Z
Duration: 00:00:30.05, start: 0.000000, bitrate: 1495 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 1301 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 192 kb/s (default)
Metadata:
creation_time : 2016-01-21T17:26:11.000000Z
handler_name : IsoMedia File Produced by Google, 5-11-2011
vendor_id : [0][0][0][0]
[FORMAT]
filename=video.mp4
nb_streams=2
nb_programs=0
format_name=mov,mp4,m4a,3gp,3g2,mj2
format_long_name=QuickTime / MOV
start_time=0.000000
duration=30.045000
size=5617101
bit_rate=1495650
probe_score=100
TAG:major_brand=mp42
TAG:minor_version=0
TAG:compatible_brands=isommp42
TAG:creation_time=2016-01-21T17:26:11.000000Z
[/FORMAT]
Hello,
I'm on Raspbian 10
I have the following problem:
when I execute the build.sh in the interactive live folder, then it gives a error here:
[ 65%] Linking CXX executable ialService
/usr/bin/ld: FFdynamic/libffdynamic.so: undefined reference to lzma_stream_decoder' /usr/bin/ld: FFdynamic/libffdynamic.so: undefined reference to
lzma_code'
/usr/bin/ld: FFdynamic/libffdynamic.so: undefined reference to `lzma_end'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/ialService.dir/build.make:124: ialService] Error 1
make[1]: *** [CMakeFiles/Makefile2:74: CMakeFiles/ialService.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
How to fix it?
Hello,
This project seems valuable and unique.
However the documentation providing examples of how to use it are not sufficient.
Could you please update the documentation to include examples to run?
Hi Xingtao,
Great tool!
I was wondering, would you be also open to provide payed support for business users?
Hello, first of all, thank you very much for such a fascinating project:
I got an issue while installing via docker at step 6
Total download size: 58 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
warning: /var/cache/yum/x86_64/7/warning:fedora/packages/cpp-5.1.1-4.fc23.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 34ec9cba: NOKEY
Public key for cpp-5.1.1-4.fc23.x86_64.rpm is not installed
--------------------------------------------------------------------------------
Total 5.7 MB/s | 58 MB 00:10
Retrieving key from https://getfedora.org/static/34EC9CBA.txt
GPG key retrieval failed: [Errno 14] HTTPS Error 404 - Not Found
The command '/bin/sh -c yum -y update gcc gcc-c++' returned a non-zero code: 1
Could someone suggest a solution for it?
UPD: There is temporal solution to add key --nogpgcheck
to the RUN command in the script, but the script is needed to be rewritten
DavImplRegister g_videoEncodeReg(DavWaveClassVideoEncode(),vector({"auto", "ffmpeg"}),
[](const DavWaveOption & options) -> unique_ptr {
unique_ptr p(new FFmpegVideoEncode(options));
return p;
});
can any one explain why is it showing no matching constructor ?
I tried to build a FFMPEG on my own.
Could you share a command to compile FFMPEG, such that it will have all dependencies for FFDynamic?
Now I have an issue:
-- pkg config include: /usr/include/x86_64-linux-gnu
--** Will search FFmpeg in default dirs: /usr;/usr/local;/sw;/opt;/opt/local
--** Searching FFmpeg with dirs: /usr;/usr/local;/sw;/opt;/opt/local
-- Not Found lib FFMPEG_LIBAVFORMAT-NOTFOUND or path FFMPEG_LIBAVFORMAT_INLUCDE_DIR-NOTFOUND
-- Not Found lib FFMPEG_LIBAVCODEC-NOTFOUND or path FFMPEG_LIBAVCODEC_INLUCDE_DIR-NOTFOUND
-- Not Found lib FFMPEG_LIBAVFILTER-NOTFOUND or path FFMPEG_LIBAVFILTER_INLUCDE_DIR-NOTFOUND
-- Not Found lib FFMPEG_LIBAVUTIL-NOTFOUND or path FFMPEG_LIBAVUTIL_INLUCDE_DIR-NOTFOUND
-- Not Found lib FFMPEG_LIBSWSCALE-NOTFOUND or path FFMPEG_LIBSWSCALE_INLUCDE_DIR-NOTFOUND
-- Not Found lib FFMPEG_LIBSWRESAMPLE-NOTFOUND or path FFMPEG_LIBSWRESAMPLE_INLUCDE_DIR-NOTFOUND
ERROR_FATALFail. Not found required ffmpeg libs.
ERROR_FATAL-- Required: avformat;avcodec;avfilter;avutil;swscale;swresample
ERROR_FATAL-- But Only Found:
FATAL_ERROR,Cannot find FFmpeg::FFmpeg target.
--** Will use pkg_config to find Glog
-- Checking for module 'libglog'
-- Found libglog, version 0.3.5
Say I have a good compile of ffmpeg, that plays out a Blackmagic design Decklink board good with a line like:
ffmpeg -i /home/matt/VideoTests/720ts_6DK01H_tru720og.ts -pix_fmt uyvy422 -f decklink -vcodec v210 "DeckLink SDI 4K"
Can FFdynamic also play out the Decklink? If so, what would streamletOutput / outputBuilder config look like?
Thanks!
Hi, in the last versions of linux os the cmake3 is defined as cmake so when i want to install it in my server give the error with cmake.
When I run sh ./build_ial.sh
, the container build fails because the given URL for the fedora GPG key (404 https://getfedora.org/static/34EC9CBA.txt) is 404'd.
#10 9.664 Public key for cpp-5.1.1-4.fc23.x86_64.rpm is not installed
#10 11.20 --------------------------------------------------------------------------------
#10 11.20 Total 20 MB/s | 58 MB 00:02
#10 11.20 Retrieving key from https://getfedora.org/static/34EC9CBA.txt
#10 11.55
#10 11.55
#10 11.55 GPG key retrieval failed: [Errno 14] HTTPS Error 404 - Not Found
I study this project to edit videos, and try to write dehazor plugin and dynamic detect streamlet following the guide.
But I found that it was hard that adding the audio into the dynamic detect streamlet ,
I saw the source code and found any audio handling logic yet.
How could I add the audio raw output with the dynamic detect streamlet example ?
Hello,
I've been testing davTests/streamletMixTest.cpp example and it works fine when the output is a file. Howver when i tried to change output url to rtmp (publish to local nginx_rtmp service) .
I got only audio when i playback in vlc. for output file it's fine.
Is there an option i'm missing? I just added this muxOption2.set(DavOptionContainerFmt(), "flv"); to get output works however i still have no video
Thank you very much
using latest master and ffmpeg 4.1 i get this on ubuntu Ubuntu Xenial (16.04 LTS)
ffmpeg is build with default values
Target "ffdynamic" links to target "FFmpeg::FFmpeg" but the target was not
found. Perhaps a find_package() call is missing for an IMPORTED target, or
an ALIAS target is missing?
CMake Error at davTests/CMakeLists.txt:4 (add_executable):
Target "simpleTranscode" links to target "FFmpeg::FFmpeg" but the target
was not found. Perhaps a find_package() call is missing for an IMPORTED
target, or an ALIAS target is missing?
CMake Error at davTests/CMakeLists.txt:3 (add_executable):
Target "streamletMixerTest" links to target "FFmpeg::FFmpeg" but the target
was not found. Perhaps a find_package() call is missing for an IMPORTED
target, or an ALIAS target is missing?
CMake Error at davTests/CMakeLists.txt:2 (add_executable):
Target "avMixerTest" links to target "FFmpeg::FFmpeg" but the target was
not found. Perhaps a find_package() call is missing for an IMPORTED
target, or an ALIAS target is missing?
CMake Error at davTests/CMakeLists.txt:1 (add_executable):
Target "filterTest" links to target "FFmpeg::FFmpeg" but the target was not
found. Perhaps a find_package() call is missing for an IMPORTED target, or
an ALIAS target is missing?
CMake Error at CMakeLists.txt:65 (add_library):
Target "ffdynamic" links to target "FFmpeg::FFmpeg" but the target was not
found. Perhaps a find_package() call is missing for an IMPORTED target, or
an ALIAS target is missing?
Ffmpeg installing
nikell@work:~/FFdynamic/FFdynamic$ ffmpeg
ffmpeg version 4.2.7-0ubuntu0.1 Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
configuration: --prefix=/usr --extra-version=0ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
Hello, I am a machine learning enthusiast. I just read the project you wrote. It is very good. There are many places worth learning. I want to know how to write the results of onProcess to rtmp. I ran your program and found that the video will be written to disk after about 3 seconds of processing. I want to know how to change it directly to rtmp, in output_url.
Hello,
thank you for this fantastic tool.
I'm trying to make a webui with nodejs using interactiveLive. But I'm facing an issue because it is impossible for the system to work multi users. is there a way to use multi users with this sytem? or it is just for one channel?
best regards.
你好,转成rtmp输出后,用vlc播放器可以正常看到画面,但用有的播放器会显示黑屏,但有声音。能否帮忙看看什么原因,谢谢!
Metadata:
displayWidth : 1280
displayHeight : 720
fps : 0
profile :
level :
Server : Tengine
videocodecreal : 0
encoder : Lavf58.12.100
Duration: 00:00:00.00, start: 14.320000, bitrate: N/A
Stream #0:0: Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s
Stream #0:1: Video: h264 (High), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn, 2000k tbc
I'm trying to mix some streams which might or might not have sound (not just silence, but absence of audio stream, only video one). I was able to mix when no streams have audio, by removing "audio_encode" entry under "output_settings" in configuiration. However, if one stream has audio and the other does not - I'm having troubles with mixing and almost every frame outputs this:
audioSyncer.cpp:76] AudioSyncer139808768794112Audio data is in future, cur 14700, desired 14700. video peer 29400, video mix 14700, audio mix 0
audioMix.cpp:206] [AudioMix-auto4] {code:-22, detail: Invalid argument, cannot allocate mixed frame data, discard one mixed frame}
My audio encode option for this case is:
"audio_encode" : {
"encode_type" : "ffmpeg",
"codec_name" : "aac",
"avdict_encode_option" : {"ac" : "2", "ab" : "128k", "ar" : "44100"}
}
Any clues?
i use ialservice,to push rtmp to a rtmp server。when i close one input url (rtmp),ial_server in a error
E0511 08:26:39.597858 71915 davProc.cpp:174] [Mux-ffmpeg3] {code:-32, detail: Broken pipe, Fail with proc one frame; try again}
i think rtmp connect is broken, then i try to reconnect by onDynamicallyInitializeViaTravelStatic . it works ,but when i add a new input url by pytest, a new trouble comes out
"AudioSyncer140734468460848Audio data is in future, cur 802202, desired 799262. video peer 1268610, video mix 1337700, audio mix 868352"
Does this work on Windows?
I want use this library in my project , but I found some compilation error .
can you help me to use it in my project.
Xingtao can you help me if you are free ??
DavTransmitor::curLoadNum
does not compile on Clang. It also doesn't compile on GCC, but only if you actually instantiate the template (the rest of FFdynamic is usable so long as you don't use DavTransmitor
).
The reason is that curLoadNum
is a const
method, but it locks a mutex (which changes its state).
inline size_t curLoadNum() const noexcept {
std::lock_guard<std::mutex> lock(m_mutex); // <----- 1st argument ('const std::mutex') would lose const qualifier
return m_loads.size();
}
It can be fixed by marking m_mutex
as mutable
, which will allow it to be changed in const
methods.
Hi,
I was testing ffdynamic On a server without gpu. I've noticed a very high cpu usage. I guess this is due to encoding/decoding (video and audio) which is very resource intensive.
Is a server with gpu (nvidia) mandatory for production ?
Is the performance gain significative with gpu? I'm tipically using ffdynamic for mcu (video room ).
What is the recommended sizing (CPU/ram) for a server ? I have a high number of inputs per room (can reach 30)
GPU is very expensive and I'd like to make sure it's necessary for an acceptable performance before buying it
Thks
Hi, Xingtao, thank you for your answer. I am sorry to bother you. I understand that your cvDnnDetect.cpp is the image recognition part, but I don't understand how to do it. Can you recommend some information?
-- The CXX compiler identification is GNU 7.5.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
--** Will use pkg_config to find FFmpeg
-- Checking for module 'libavformat'
-- Found libavformat, version 57.83.100
-- Checking for module 'libavcodec'
-- Found libavcodec, version 57.107.100
-- Checking for module 'libavfilter'
-- Found libavfilter, version 6.107.100
-- Checking for module 'libavutil'
-- Found libavutil, version 55.78.100
-- Checking for module 'libswscale'
-- Found libswscale, version 4.8.100
-- Checking for module 'libswresample'
-- Found libswresample, version 2.9.100
-- pkg config lib:
-- pkg config include: /usr/include/x86_64-linux-gnu/usr/include/x86_64-linux-gnu/usr/include/x86_64-linux-gnu/usr/include/x86_64-linux-gnu/usr/include/x86_64-linux-gnu/usr/include/x86_64-linux-gnu
--** Will search FFmpeg in default dirs: /usr;/usr/local;/sw;/opt;/opt/local
--** Searching FFmpeg with dirs: /usr;/usr/local;/sw;/opt;/opt/local
-- Not Found lib FFMPEG_LIBAVFORMAT-NOTFOUND or path FFMPEG_LIBAVFORMAT_INLUCDE_DIR-NOTFOUND
-- Not Found lib FFMPEG_LIBAVCODEC-NOTFOUND or path FFMPEG_LIBAVCODEC_INLUCDE_DIR-NOTFOUND
-- Not Found lib FFMPEG_LIBAVFILTER-NOTFOUND or path FFMPEG_LIBAVFILTER_INLUCDE_DIR-NOTFOUND
-- Not Found lib FFMPEG_LIBAVUTIL-NOTFOUND or path FFMPEG_LIBAVUTIL_INLUCDE_DIR-NOTFOUND
-- Not Found lib FFMPEG_LIBSWSCALE-NOTFOUND or path FFMPEG_LIBSWSCALE_INLUCDE_DIR-NOTFOUND
-- Not Found lib FFMPEG_LIBSWRESAMPLE-NOTFOUND or path FFMPEG_LIBSWRESAMPLE_INLUCDE_DIR-NOTFOUND
ERROR_FATALFail. Not found required ffmpeg libs.
ERROR_FATAL-- Required: avformat;avcodec;avfilter;avutil;swscale;swresample
ERROR_FATAL-- But Only Found:
FATAL_ERROR,Cannot find FFmpeg::FFmpeg target.
CMake Error at CMakeLists.txt:26 (install):
install FILES given no DESTINATION!
After starting the interactiveLive service i run the POST request but the http seems not working right!
I get "Empty reply from server" when i use curl means not response.
curl -XPOST http://127.0.0.1:8080/api1/ial/create_room -d '{"room_id" : "room1", "input_urls" : ["/home/site.com/webs/web.site.com/public/_stream_in/1.mp4", "/home/site.com/webs/web.site.com/public/_stream_in/2.mp4", "/home/site.com/webs/web.site.com/public/_stream_in/3.mp4"], "room_output_base_url": "/home/site.com/webs/web.site.com/public/_stream_out/", "output_stream_infos" :{"output_setting_id" : "720p_2000kb"} }'
But i get log from the interactiveLive process, i don't know what is wrong because i'm a quite newbie in c++
POST
header line --> Content-Type: application/json
header line --> User-Agent: PostmanRuntime/7.24.1
header line --> Accept: */*
header line --> Cache-Control: no-cache
header line --> Postman-Token: c663dd9f-5769-43c0-8ef2-b1ce2f10cc1b
header line --> Host: site.com:8080
header line --> Accept-Encoding: gzip, deflate, br
header line --> Connection: keep-alive
header line --> Content-Length: 467
Hi, I'm trying to mix two videos, each of which is 1920x1080, and stack them horizontally. That's just one case of several I have, so I'm trying to understand how layouts work in general. I set up a mixer with width 3840 and height 1080 (in video_mix settings in json config file), and setup output with the same (width 3840, height 1080). Then I use auto layout (also tried explicitly eHorizonal_2). It does input videos fine, however they are both heavily downscaled and put in small rectangles close to the center of resulting 3840x1080 video. What I want to achieve instead is for them to be stacked without any gaps and downscaling (first video on the left in original resolution of 1920x1080, and second video on the right, also in original resolution). I tried eLayoutSpecific but I'm not sure if it's supported yet. I also looked at code and noticed eHorizonal_2 (for example) coordinates are defined as "{{0,60},{30,30},{60,60},{60,60}}}", which is not very clear to me. Can you please help me with this issue?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.