
Recherche avancée
Autres articles (47)
-
Submit bugs and patches
13 avril 2011Unfortunately a software is never perfect.
If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
You may also (...) -
Personnaliser les catégories
21 juin 2013, parFormulaire de création d’une catégorie
Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
On peut modifier ce formulaire dans la partie :
Administration > Configuration des masques de formulaire.
Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...) -
Les formats acceptés
28 janvier 2010, parLes commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
ffmpeg -codecs ffmpeg -formats
Les format videos acceptés en entrée
Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
Les formats vidéos de sortie possibles
Dans un premier temps on (...)
Sur d’autres sites (7834)
-
Shaka Player returns 4001 error - Node.js local web server playing MPEG-DASH
27 mai 2020, par salgarjiI've used Chrome inspection tool to access 'Console' and analyze what is happening. Complete error information :



D {severity: 2, category: 4, code: 4001, data: Array(1), handled: false}
category: 4
code: 4001
data: Array(1)
0: "http://localhost:8080/dash_segmentos/video.mpd"
length: 1
__proto__: Array(0)
handled: false
severity: 2
__proto__: Object




My
Server.js
file :


var http = require('http');
var fs = require('fs');

console.log(__dirname);

var path='dash_segmentos/video.mpd';
fs.access(path, fs.constants.R_OK | fs.constants.W_OK, (err) => {
 if (err) {
 console.log("%s doesn't exist", path);
 } else {
 console.log('can read/write %s', path);
 }
});

const PORT=8080; 

fs.readFile('./player.html', function (err, html) {

 if (err) throw err; 

 http.createServer(function(request, response) { 
 response.setHeader("Access-Control-Allow-Headers", "authorization, content-type");
 response.setHeader("Access-Control-Allow-Origin", "*");
 response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
 response.writeHeader(200, {"Content-Type": "text/html"}); 
 response.write(html); 
 response.end();
 }).listen(PORT);
});




As you can see I've added CORS (I guess it's correct) and a console.log to see if it's in the proper location. Furthermore, I've verified that file is accessible with
fs.access
and it returnscan read/write dash_segmentos/video.mpd
For this reason, I'm sure I am in the correct path and referencing the right file.


The HTML code (
player.html
) provided toServer.js
:




 
 <code class="echappe-js"><script type="text/javascript"&#xA;src="https://cdnjs.cloudflare.com/ajax/libs/shaka-player/2.5.11/shaka-player.compiled.js"></script>

 
 

 



<script>&#xA;function initApp() { &#xA;shaka.polyfill.installAll(); &#xA;if (shaka.Player.isBrowserSupported()) { &#xA; initPlayer(); &#xA; } else { &#xA; console.error(&#x27;Browser not supported!&#x27;);&#xA; }}&#xA;&#xA;function initPlayer() { &#xA;var video = document.getElementById( &#x27;video&#x27; );&#xA;var player = new shaka.Player( video );&#xA; window.player = player; &#xA;player.addEventListener(&#x27;error&#x27;, onErrorEvent); &#xA;player.load(path).then(function (){&#xA; console.log(&#x27;Video loaded correctly&#x27;);&#xA; }).catch(onError);&#xA;&#xA;function onErrorEvent(event) {&#xA; onError(event.detail); &#xA; }&#xA;function onError(error) {&#xA; console.error(&#x27;Codigo de error: &#x27;, error.code, &#x27; en &#x27;, error);&#xA; }&#xA;}&#xA;</script>


<script>&#xA;var path=&#x27;dash_segmentos/video.mpd&#x27;;&#xA;//var path=&#x27;https://dash.akamaized.net/dash264/TestCases/2c/qualcomm/1/MultiResMPEG2.mpd&#x27;;&#xA;//the URL above is working! but it won&#x27;t read my local mpd&#xA;&#xA;document.addEventListener(&#x27;DOMContentLoaded&#x27;, initApp);&#xA;&#xA; </script>

 




I've tried changing the URL to an online resource and the player is properly working.



My fluent-ffmpeg command which generates the video is :



var ffmpeg = require('fluent-ffmpeg');

var grabacion = new ffmpeg();

grabacion.addInput('0')
.inputOptions(['-y -nostdin', '-f avfoundation', '-video_size 1280x720', '-framerate 30'])
.outputOptions(['-vcodec libx264', '-keyint_min 0', '-g 100', '-map 0:v', '-b:v 1000k', '-f dash',
 '-use_template 1', '-use_timeline 0', '-init_seg_name video0-$RepresentationID$-$Number$.mp4',
 '-media_seg_name video0-$RepresentationID$-$Number$.mp4','-single_file 0', '-remove_at_exit 0', '-window_size 20', '-seg_duration 4'])
.output('/path/to/files/dash_segmentos/video.mpd')
.run();




The mpd manifest file is :



<?xml version="1.0" encoding="utf-8"?>
<mpd xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" mediapresentationduration="PT26.7S" maxsegmentduration="PT4.0S" minbuffertime="PT13.2S">
 <programinformation>
 </programinformation>
 <servicedescription>
 </servicedescription>
 <period start="PT0.0S">
 <adaptationset contenttype="video" startwithsap="1" segmentalignment="true" bitstreamswitching="true" framerate="30000/1001" maxwidth="1280" maxheight="720" par="16:9">
 <representation mimetype="video/mp4" codecs="avc1.7a001f" bandwidth="1000000" width="1280" height="720" sar="1:1">
 <segmenttemplate timescale="1000000" duration="4000000" initialization="video0-$RepresentationID$-$Number$.mp4" media="video0-$RepresentationID$-$Number$.mp4" startnumber="1">
 </segmenttemplate>
 </representation>
 </adaptationset>
 </period>
</mpd>




Is something about ffmpeg ? Permissions ? Pixel format ? Encoding ? I've tried with other mpd file provided by my Raspberry Pi using video4linux (v4l) and it returns the same error !



I know that's a lot of code, but maybe you find it quicker than me. I guess it's a Shaka Player thing with the XML, but I can't explain how ffmpeg is wrongly creating XML code.



Thank you in advance !!


-
ffmpeg to convert file to webm returns in error
14 avril 2019, par user3184895i have a self-recorded file in .ts format and want to convert it to three different formats(.mp4, .ogg and .webm).
for that i use my brandnew debian9 with following commands :
/usr/bin/ffmpeg -y -i source.ts -strict experimental -r 25 -b 18550k -bt 22792k -acodec aac -ac 2 -ar 48000 -ab 320k output.mp4
/usr/bin/ffmpeg -y -i source.ts -r 25 -b 18550k -bt 22792k -vcodec libtheora -acodec libvorbis -ac 2 -ar 48000 -ab 320k output.ogg
/usr/bin/ffmpeg -y -i source.ts -r 25 -b 18550k -bt 22792k -ac 2 -ar 48000 -ab 320k output.webm
Source-File :
General
ID : 1019 (0x3FB)
Complete name : test.ts
Format : MPEG-TS
File size : 85.9 MiB
Duration : 56 s 490 ms
Overall bit rate mode : Variable
Overall bit rate : 12.7 Mb/s
Video
ID : 5101 (0x13ED)
Menu ID : 10301 (0x283D)
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : 27
Duration : 55 s 880 ms
Bit rate : 11.1 Mb/s
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate : 50.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.241
Stream size : 74.1 MiB (86%)
Audio #1
ID : 5102 (0x13EE)
Menu ID : 10301 (0x283D)
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 2
Codec ID : 3
Duration : 56 s 448 ms
Bit rate mode : Constant
Bit rate : 256 kb/s
Channel(s) : 2 channels
Sampling rate : 48.0 kHz
Compression mode : Lossy
Delay relative to video : -1 s 136 ms
Stream size : 1.72 MiB (2%)
Language : German
Audio #2
ID : 5103 (0x13EF)
Menu ID : 10301 (0x283D)
Format : MPEG Audio
Format version : Version 1
Format profile : Layer 2
Codec ID : 3
Duration : 56 s 448 ms
Bit rate mode : Constant
Bit rate : 256 kb/s
Channel(s) : 2 channels
Sampling rate : 48.0 kHz
Compression mode : Lossy
Delay relative to video : -1 s 136 ms
Stream size : 1.72 MiB (2%)
descriptor_tag_extension : 6
Audio #3
ID : 5106 (0x13F2)
Menu ID : 10301 (0x283D)
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Format settings, Endianness : Big
Codec ID : 6
Duration : 56 s 480 ms
Bit rate mode : Constant
Bit rate : 448 kb/s
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 kHz
Frame rate : 31.250 FPS (1536 spf)
Bit depth : 16 bits
Compression mode : Lossy
Delay relative to video : -1 s 168 ms
Stream size : 3.02 MiB (4%)
Language : German
Text
ID : 5105 (0x13F1)
Menu ID : 10301 (0x283D)
Format : DVB Subtitle
Codec ID : 6
Duration : 54 s 800 ms
Delay relative to video : 2 s 520 ms
Language : German
Other
ID : 5104 (0x13F0)-100
Menu ID : 10301 (0x283D)
Format : Teletext
Language : German
Menu
ID : 5100 (0x13EC)
Menu ID : 10301 (0x283D)
Duration : 56 s 490 ms
List : 1170 (0x492) () / 1176 (0x498) () / 2171 (0x87B) () / 5101 (0x13ED) (AVC) / 5102 (0x13EE) (MPEG Audio, German) / 5103 (0x13EF) (MPEG Audio) / 5104 (0x13F0)-100 (Teletext, de) / 5105 (0x13F1) (DVB Subtitle, German) / 5106 (0x13F2) (AC-3, German) / 5108 (0x13F4) () / 5172 (0x1434) ()
Language : / / / / German / / German / German / GermanWhy i am doing that ? I just play arround with a privat intranet (web-application) to stream my own recorded files on different clients (Smartphone, Tablet, Desktop). Thats also the reason for the different formats (.mp4, .ogg, .webm)
My current problem is : The command to convert it to .webm returns following error :
/usr/bin/ffmpeg -y -i test.ts -r 25 -b 18550k -bt 22792k -ac 2 -ar 48000 -ab 320k output.webm
ffmpeg version 3.2.12-1~deb9u1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
configuration: --prefix=/usr --extra-version='1~deb9u1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil 55. 34.101 / 55. 34.101
libavcodec 57. 64.101 / 57. 64.101
libavformat 57. 56.101 / 57. 56.101
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libavresample 3. 1. 0 / 3. 1. 0
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] SPS unavailable in decode_picture_timing
[h264 @ 0x557535b03b40] non-existing PPS 0 referenced
[h264 @ 0x557535b03b40] decode_slice_header error
[h264 @ 0x557535b03b40] no frame!
[mpegts @ 0x557535ade440] start time for stream 9 is not set in estimate_timings_from_pts
[mpegts @ 0x557535ade440] PES packet size mismatch
[mpegts @ 0x557535ade440] Could not find codec parameters for stream 0 (Unknown: none ([5][0][0][0] / 0x0005)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mpegts @ 0x557535ade440] Could not find codec parameters for stream 1 (Unknown: none ([12][0][0][0] / 0x000C)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mpegts @ 0x557535ade440] Could not find codec parameters for stream 2 (Unknown: none ([11][0][0][0] / 0x000B)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mpegts @ 0x557535ade440] Could not find codec parameters for stream 10 (Unknown: none ([11][0][0][0] / 0x000B)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mpegts, from 'test.ts':
Duration: 00:00:58.04, start: 86615.181389, bitrate: 12418 kb/s
Program 10301
Stream #0:0[0x492]: Unknown: none ([5][0][0][0] / 0x0005)
Stream #0:1[0x498]: Unknown: none ([12][0][0][0] / 0x000C)
Stream #0:2[0x87b]: Unknown: none ([11][0][0][0] / 0x000B)
Stream #0:3[0x13ed]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 100 tbc
Stream #0:4[0x13ee](deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 256 kb/s
Stream #0:5[0x13ef](mis): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 256 kb/s
Stream #0:6[0x13f0](deu): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)
Stream #0:7[0x13f1](deu): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006) (hearing impaired)
Stream #0:8[0x13f2](deu): Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz, stereo, fltp, 448 kb/s
Stream #0:9[0x13f4]: Data: bin_data ([6][0][0][0] / 0x0006)
Stream #0:10[0x1434]: Unknown: none ([11][0][0][0] / 0x000B)
Program 10302
Program 10303
Program 10304
Please use -b:a or -b:v, -b is ambiguous
[libvpx-vp9 @ 0x557535ba6d00] v1.6.1
Stream mapping:
Stream #0:3 -> #0:0 (h264 (native) -> vp9 (libvpx-vp9))
Stream #0:4 -> #0:1 (mp2 (native) -> opus (libopus))
Stream #0:6 -> #0:2 (dvb_teletext (libzvbi_teletextdec) -> webvtt (native))
Error while opening encoder for output stream #0:2 - maybe incorrect parameters such as bit_rate, rate, width or heighti dont understand the problem, because the convertions to .ogg or .mp4 are workin. So i cannot be a problem with the source-codecs. Does anyone have any idea what my problem might be
-
Overlay filter in LibAV/FFMpeg returns strange (tripled) frame in C
28 juillet 2014, par gkuczeraI tried to make a program, which merges two frames. I use LibAV (libav-win32-20140428) under Windows 7 64 and Visual Studio 2013.
But the result is quite odd.The filter which was used is Overlay. When I change the graph, to the one, that uses only one stream and add FADE effect, everything works like a charm. But OVERLAY and eg. DRAWBOX give me strange distortion (three frames on one and black and white effect). Here is the code :
static int init_filter_graph(AVFilterGraph **pGraph, AVFilterContext **pSrc1, AVFilterContext **pSink)
{
AVFilterGraph* tFilterGraph;
AVFilterContext* tBufferContext1;
AVFilter* tBuffer1;
AVFilterContext* tColorContext;
AVFilter* tColor;
AVFilterContext* tOverlayContext;
AVFilter* tOverlay;
AVFilterContext* tBufferSinkContext;
AVFilter* tBufferSink;
int tError;
/* Create a new filtergraph, which will contain all the filters. */
tFilterGraph = avfilter_graph_alloc();
if (!tFilterGraph) {
return -1;
}
{ // BUFFER FILTER 1
tBuffer1 = avfilter_get_by_name("buffer");
if (!tBuffer1) {
return -1;
}
tBufferContext1 = avfilter_graph_alloc_filter(tFilterGraph, tBuffer1, "src1");
if (!tBufferContext1) {
return -1;
}
av_dict_set(&tOptionsDict, "width", "320", 0);
av_dict_set(&tOptionsDict, "height", "240", 0);
av_dict_set(&tOptionsDict, "pix_fmt", "bgr24", 0);
av_dict_set(&tOptionsDict, "time_base", "1/25", 0);
av_dict_set(&tOptionsDict, "sar", "1", 0);
tError = avfilter_init_dict(tBufferContext1, &tOptionsDict);
av_dict_free(&tOptionsDict);
if (tError < 0) {
return tError;
}
}
{ // COLOR FILTER
tColor = avfilter_get_by_name("color");
if (!tColor) {
return -1;
}
tColorContext = avfilter_graph_alloc_filter(tFilterGraph, tColor, "color");
if (!tColorContext) {
return -1;
}
av_dict_set(&tOptionsDict, "color", "white", 0);
av_dict_set(&tOptionsDict, "size", "20x120", 0);
av_dict_set(&tOptionsDict, "framerate", "1/25", 0);
tError = avfilter_init_dict(tColorContext, &tOptionsDict);
av_dict_free(&tOptionsDict);
if (tError < 0) {
return tError;
}
}
{ // OVERLAY FILTER
tOverlay = avfilter_get_by_name("overlay");
if (!tOverlay) {
return -1;
}
tOverlayContext = avfilter_graph_alloc_filter(tFilterGraph, tOverlay, "overlay");
if (!tOverlayContext) {
return -1;
}
av_dict_set(&tOptionsDict, "x", "0", 0);
av_dict_set(&tOptionsDict, "y", "0", 0);
av_dict_set(&tOptionsDict, "main_w", "120", 0);
av_dict_set(&tOptionsDict, "main_h", "140", 0);
av_dict_set(&tOptionsDict, "overlay_w", "320", 0);
av_dict_set(&tOptionsDict, "overlay_h", "240", 0);
tError = avfilter_init_dict(tOverlayContext, &tOptionsDict);
av_dict_free(&tOptionsDict);
if (tError < 0) {
return tError;
}
}
{ // BUFFERSINK FILTER
tBufferSink = avfilter_get_by_name("buffersink");
if (!tBufferSink) {
return -1;
}
tBufferSinkContext = avfilter_graph_alloc_filter(tFilterGraph, tBufferSink, "sink");
if (!tBufferSinkContext) {
return -1;
}
tError = avfilter_init_str(tBufferSinkContext, NULL);
if (tError < 0) {
return tError;
}
}
// Linking graph
tError = avfilter_link(tBufferContext1, 0, tOverlayContext, 0);
if (tError >= 0) {
tError = avfilter_link(tColorContext, 0, tOverlayContext, 1);
}
if (tError >= 0) {
tError = avfilter_link(tOverlayContext, 0, tBufferSinkContext, 0);
}
if (tError < 0) {
return tError;
}
tError = avfilter_graph_config(tFilterGraph, NULL);
if (tError < 0) {
return tError;
}
*pGraph = tFilterGraph;
*pSrc1 = tBufferContext1;
*pSink = tBufferSinkContext;
return 0;
}What do you think is the reason ?