Basically, what I want to do is to create a transcoder template with one encoder preset via REST API. So I made the request below:
curl -X POST \
http://<server-ip>:8087/v2/servers/_defaultServer_/vhosts/_defaultVHost_/applications/<appName>/transcoder/templates \
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache' \
-d '{
"deinterlace": false,
"streamNameGroups": [
],
"Overlays": [],
"implementation": "default",
"name": "Teste-Review.stream",
"serverName": "_defaultServer_",
"description": "Teste",
"saveFieldList": [],
"encodes": [
{
"followSource": false,
"implementation": "default",
"gpuid": -1,
"profile": "baseline",
"serverName": "_defaultServer_",
"description": "Low quality",
"audioCodec": "PassThru",
"version": "1",
"streamName": "mp4:${SourceStreamName}_Low",
"Overlays": [
],
"audioBitrate": "${SourceAudioBitrate}",
"videoBitrate": "250000",
"enable": true,
"name": "LowQuality",
"width": 704,
"interval": 60,
"fitMode": "match-source",
"saveFieldList": [
],
"crop": "0,0,0,0",
"videoCodec": "H.264",
"height": 480,
"sourceRectangle": ""
}
],
"version": "1"
}'
The server responded with Status 201 Created and the following body:
<?xml version="1.0" encoding="UTF-8" ?>
<wmsResponse>
<success>true</success>
<message>Saved</message>
</wmsResponse>
So far so good. When I go to Wowza Streaming Engine Manager, however, things get strange.
As you can see in the first screenshot, it lists the created template. But when I click on it…
I have no idea what this is supposed to mean. And when I try to delete the template clicking on the trash bin it goes to the same screen. However, I can delete it just fine via the REST API. Strange behaviour. Naturally, no transcoding happens, as “Incoming Streams” only lists the original stream files source.
Full error:
Stack Trace Not+Found+%28404%29+-+Not+Found%0A%09at+org.restlet.resource.ClientResource.doError%28ClientResource.java%3A599%29%0A%09at+org.restlet.resource.ClientResource.handleInbound%28ClientResource.java%3A1165%29%0A%09at+org.restlet.resource.ClientResource.handle%28ClientResource.java%3A1060%29%0A%09at+org.restlet.resource.ClientResource.handle%28ClientResource.java%3A1035%29%0A%09at+org.restlet.resource.ClientResource.handle%28ClientResource.java%3A937%29%0A%09at+org.restlet.resource.ClientResource.get%28ClientResource.java%3A645%29%0A%09at+com.wowza.wms.rest.WMSClientResource.get%28Unknown+Source%29%0A%09at+com.wowza.wms.rest.ConfigBase.getObjectFromREST%28Unknown+Source%29%0A%09at+com.wowza.wms.rest.vhosts.applications.transcoder.TranscoderTemplateAppConfig.getObjectFromREST%28Unknown+Source%29%0A%09at+com.wowza.wms.webapp.transcoder.TranscoderTemplateModel.loadRESTObjects%28TranscoderTemplateModel.java%3A258%29%0A%09at+com.wowza.wms.webapp.ModelBase.loadUIData%28ModelBase.java%3A584%29%0A%09at+com.wowza.wms.webapp.transcoder.TranscoderTemplateModel.loadUIData%28TranscoderTemplateModel.java%3A276%29%0A%09at+com.wowza.wms.webapp.transcoder.TranscoderController.getTemplateSetup%28TranscoderController.java%3A218%29%0A%09at+com.wowza.wms.webapp.transcoder.TranscoderController.getTemplateSetup%28TranscoderController.java%3A204%29%0A%09at+sun.reflect.GeneratedMethodAccessor695.invoke%28Unknown+Source%29%0A%09at+sun.reflect.DelegatingMethodAccessorImpl.invoke%28DelegatingMethodAccessorImpl.java%3A43%29%0A%09at+java.lang.reflect.Method.invoke%28Method.java%3A498%29%0A%09at+org.springframework.web.method.support.InvocableHandlerMethod.invoke%28InvocableHandlerMethod.java%3A219%29%0A%09at+org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest%28InvocableHandlerMethod.java%3A132%29%0A%09at+org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle%28ServletInvocableHandlerMethod.java%3A104%29%0A%09at+org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod%28RequestMappingHandlerAdapter.java%3A745%29%0A%09at+org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal%28RequestMappingHandlerAdapter.java%3A686%29%0A%09at+org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle%28AbstractHandlerMethodAdapter.java%3A80%29%0A%09at+org.springframework.web.servlet.DispatcherServlet.doDispatch%28DispatcherServlet.java%3A925%29%0A%09at+org.springframework.web.servlet.DispatcherServlet.doService%28DispatcherServlet.java%3A856%29%0A%09at+org.springframework.web.servlet.FrameworkServlet.processRequest%28FrameworkServlet.java%3A936%29%0A%09at+org.springframework.web.servlet.FrameworkServlet.doGet%28FrameworkServlet.java%3A827%29%0A%09at+javax.servlet.http.HttpServlet.service%28HttpServlet.java%3A707%29%0A%09at+org.springframework.web.servlet.FrameworkServlet.service%28FrameworkServlet.java%3A812%29%0A%09at+javax.servlet.http.HttpServlet.service%28HttpServlet.java%3A820%29%0A%09at+net.winstone.core.ServletConfiguration.execute%28ServletConfiguration.java%3A270%29%0A%09at+net.winstone.core.SimpleRequestDispatcher.forward%28SimpleRequestDispatcher.java%3A290%29%0A%09at+net.winstone.core.SimpleRequestDispatcher.doFilter%28SimpleRequestDispatcher.java%3A332%29%0A%09at+com.wowza.wms.webapp.RequestLoggingFilter.doFilter%28RequestLoggingFilter.java%3A35%29%0A%09at+net.winstone.core.FilterConfiguration.execute%28FilterConfiguration.java%3A189%29%0A%09at+net.winstone.core.SimpleRequestDispatcher.doFilter%28SimpleRequestDispatcher.java%3A321%29%0A%09at+org.springframework.security.web.FilterChainProxy%24VirtualFilterChain.doFilter%28FilterChainProxy.java%3A330%29%0A%09at+org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke%28FilterSecurityInterceptor.java%3A118%29%0A%09at+org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter%28FilterSecurityInterceptor.java%3A84%29%0A%09at+org.springframework.security.web.FilterChainProxy%24VirtualFilterChain.doFilter%28FilterChainProxy.java%3A342%29%0A%09at+org.springframework.security.web.access.ExceptionTranslationFilter.doFilter%28ExceptionTranslationFilter.java%3A113%29%0A%09at+org.springframework.security.web.FilterChainProxy%24VirtualFilterChain.doFilter%28FilterChainProxy.java%3A342%29%0A%09at+org.springframework.security.web.session.SessionManagementFilter.doFilter%28SessionManagementFilter.java%3A103%29%0A%09at+org.springframework.security.web.FilterChainProxy%24VirtualFilterChain.doFilter%28FilterChainProxy.java%3A342%29%0A%09at+org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter%28AnonymousAuthenticationFilter.java%3A113%29%0A%09at+org.springframework.security.web.FilterChainProxy%24VirtualFilterChain.doFilter%28FilterChainProxy.java%3A342%29%0A%09at+org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter%28SecurityContextHolderAwareRequestFilter.java%3A54%29%0A%09at+org.springframework.security.web.FilterChainProxy%24VirtualFilterChain.doFilter%28FilterChainProxy.java%3A342%29%0A%09at+org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter%28RequestCacheAwareFilter.java%3A45%29%0A%09at+org.springframework.security.web.FilterChainProxy%24VirtualFilterChain.doFilter%28FilterChainProxy.java%3A342%29%0A%09at+org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter%28BasicAuthenticationFilter.java%3A150%29%0A%09at+org.springframework.security.web.FilterChainProxy%24VirtualFilterChain.doFilter%28FilterChainProxy.java%3A342%29%0A%09at+org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter%28AbstractAuthenticationProcessingFilter.java%3A183%29%0A%09at+org.springframework.security.web.FilterChainProxy%24VirtualFilterChain.doFilter%28FilterChainProxy.java%3A342%29%0A%09at+org.springframework.security.web.authentication.logout.LogoutFilter.doFilter%28LogoutFilter.java%3A105%29%0A%09at+org.springframework.security.web.FilterChainProxy%24VirtualFilterChain.doFilter%28FilterChainProxy.java%3A342%29%0A%09at+org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter%28SecurityContextPersistenceFilter.java%3A87%29%0A%09at+org.springframework.security.web.FilterChainProxy%24VirtualFilterChain.doFilter%28FilterChainProxy.java%3A342%29%0A%09at+org.springframework.security.web.FilterChainProxy.doFilterInternal%28FilterChainProxy.java%3A192%29%0A%09at+org.springframework.security.web.FilterChainProxy.doFilter%28FilterChainProxy.java%3A160%29%0A%09at+org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate%28DelegatingFilterProxy.java%3A343%29%0A%09at+org.springframework.web.filter.DelegatingFilterProxy.doFilter%28DelegatingFilterProxy.java%3A260%29%0A%09at+net.winstone.core.FilterConfiguration.execute%28FilterConfiguration.java%3A189%29%0A%09at+net.winstone.core.SimpleRequestDispatcher.doFilter%28SimpleRequestDispatcher.java%3A321%29%0A%09at+com.wowza.wms.webapp.Utf8Filter.doFilter%28Utf8Filter.java%3A30%29%0A%09at+net.winstone.core.FilterConfiguration.execute%28FilterConfiguration.java%3A189%29%0A%09at+net.winstone.core.SimpleRequestDispatcher.doFilter%28SimpleRequestDispatcher.java%3A321%29%0A%09at+net.winstone.core.SimpleRequestDispatcher.forward%28SimpleRequestDispatcher.java%3A288%29%0A%09at+net.winstone.core.listener.RequestHandlerThread.processRequest%28RequestHandlerThread.java%3A213%29%0A%09at+net.winstone.core.listener.RequestHandlerThread.run%28RequestHandlerThread.java%3A144%29%0A%09at+java.util.concurrent.Executors%24RunnableAdapter.call%28Executors.java%3A511%29%0A%09at+java.util.concurrent.FutureTask.run%28FutureTask.java%3A266%29%0A%09at+net.winstone.util.BoundedExecutorService%241.run%28BoundedExecutorService.java%3A81%29%0A%09at+java.util.concurrent.ThreadPoolExecutor.runWorker%28ThreadPoolExecutor.java%3A1142%29%0A%09at+java.util.concurrent.ThreadPoolExecutor%24Worker.run%28ThreadPoolExecutor.java%3A617%29%0A%09at+java.lang.Thread.run%28Thread.java%3A745%29%0A
Final observation: when I try to retrieve this particular template configuration via REST API, the server responds with 404 Not Found.
Sorry for the long question, but I’ve been trying to do this for a whole day without success. I don’t know if I messed up the JSON or what. Anyway, thanks in advance and hope any of you can help me.
Cheers