CasparCG / server

CasparCG Server is a Windows and Linux software used to play out professional graphics, audio and video to multiple outputs. It has been in 24/7 broadcast production since 2006. Ready-to-use downloads are available under the Releases tab https://casparcg.com.
GNU General Public License v3.0
899 stars 268 forks source link

[REQUEST] HTML supporting MP4 and MP3 #350

Open mint-dewit opened 9 years ago

mint-dewit commented 9 years ago

Out of the box CEF3 does not support mp3 nor mp4 because they are not open standards.

It is pretty much a standard in broadcasting world however, so it would be very nice if support could be added. Most video editors don't support .ogg, thus are incompatible with cef3.

This is mostly an issue because cef3 can't communicate with caspar directly, thus caspar cannot be used for video playback in a template.

premultiply commented 6 years ago

Is this fixed now with new CEF in 2.2? Please test.

mint-dewit commented 6 years ago

@Julusian would know best.

Julusian commented 6 years ago

It is not enabled in the official builds, so this will not be working currently. I would like to enable it, but didn't get an answer about potential licensing issues when I raised it in the PR

mint-dewit commented 6 years ago

but didn't get an answer about potential licensing issues when I raised it in the PR

@dotarmin what do you think about enabling this? we already enable these in ffmpeg, so I don't see any issues license wise. technically, I don't think we need to change anything in the code, just a different cef binary.

Julusian commented 6 years ago

we already enable these in ffmpeg, so I don't see any issues license wise.

That is my thinking.

I don't think we need to change anything in the code, just a different cef binary.

Yes, all that will need to change is for us to use a custom build of CEF. I have experience with doing that, the upgrade PR was custom builds until it became Chromium 63.

dotarmin commented 6 years ago

@baltedewit I don't think we need to change anything in the code, just a different cef binary.

@Julusian Yes, all that will need to change is for us to use a custom build of CEF. I have experience with doing that, the upgrade PR was custom builds until it became Chromium 63.

I think it would be great of having this BUT I'm a bit sceptical. Now when we use Nuget for some of the packages (including CEF) and aim to continue with that in the future with the rest of packages that are not nugetified today. I think going back to custom builds has a potential risk of putting us in a situation as we were in with CEF and CasparCG Server 2.0.7 and 2.1.0, making it hard to maintain and update.

@baltedewit so I don't see any issues license wise

The decision is not really on me, it's more like a community thing to discuss. I think also that person making the pull request (if done) has to take responsibility for not breaking any licensing terms, which is a quite common thing in open source projects.

mint-dewit commented 6 years ago

@dotarmin: I think going back to custom builds has a potential risk of putting us in a situation as we were in with CEF and CasparCG Server 2.0.7 and 2.1.0, making it hard to maintain and update.

I don't see how this is relevant here. We're not changing anything to the API's. CasparCG will still be able to compile with a regular version of CEF just as well, by anyone who wants to do so.

dotarmin commented 6 years ago

I don't see how this is relevant here. We're not changing anything to the API's. CasparCG will still be able to compile with a regular version of CEF just as well, by anyone who wants to do so.

I don't get it, of course it's relevant. Even if we don't change anything to the API, to make it work with a standard CEF package available at Nuget, we still need to maintain the custom CEF build. My personal opinion is that we shouldn't depend on custom builds and aim for available standard packages when possible. 😄

A solution could be to have a custom CEF build somewhere enabling what you're requesting and build it on own request by changing out CEF package, from Nuget to the custom CEF package.

@ronag What do you think?

ronag commented 6 years ago

I won't maintain any custom builds. If someone else wants to do that then I don't mind.

dotarmin commented 6 years ago

If someone else wants to do that then I don't mind.

I still think it would be a bad idea, at least right now. We have so much other things to focus on right now.

I also think of a scenario if the person who's maintaining what ever custom build (CEF in this case) quits maintaining the build, what then? Then we're back to the situation I wrote about earlier which is not a desirable situation. But that's just me thinking loud.

Julusian commented 6 years ago

CasparCG will still be able to compile with a regular version of CEF just as well, by anyone who wants to do so.

That's true. If there are issues keeping our own builds of CEF maintained, then it will be possible to simply swap out the nuget package for the one we are using now and simply revert this until someone is willing to maintain it again. Bear in mind that the builds we are currently using are maintained by the CEFSharp project not CEF, so there is a risk there in frequency of updates.

Another question is how often do we want to upgrade CEF? The biggest issue faced was that CEF/Chromium had broken offscreen rendering making a majority of the versions in between unusable to us. Also updating CEF can break templates/change how they render slightly, so doing it too often may not be a good idea either.

I won't maintain any custom builds. If someone wants to do that I don't mind.

I am happy to once I have some time freed up. The CEF build process is well documented on their wiki and is just copy and paste commands, so it should be possible to automate the process via Jenkins job.

dotarmin commented 6 years ago

@baltedewit We can have it as a feature request and by that it won't be forgotten?

dotarmin commented 6 years ago

Another question is how often do we want to upgrade CEF?

I think it's something that won't be done that often (I'm not sure) but absolutely more frequent than before. CEF version we used in 2.0.7 and 2.1.0 was from 2014 or something. We shouldn't be afraid of upgrading CEF in the future but when it's done it should be tested and documented well.