Opened 12 years ago

Last modified 8 years ago

#1793 open enhancement

Widevine support

Reported by: benito2313 Owned by:
Priority: wish Component: avformat
Version: git-master Keywords: Widevine drm
Cc: ffmpeg@stefan-neufeind.de Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Hi there,

I was wondering if there will be any (future) support for the Widevine video streaming codec/protocol (video/x-widevine).

More and more online content providers start to use this method and it would be nice to have this codec/protocol supported?

http://www.widevine.com/
https://tools.google.com/dlpage/widevine

Attachments (1)

m3u8 - xbmc.log (28.1 KB ) - added by benito2313 12 years ago.
M3U8 - XBMC LOG

Download all attachments as: .zip

Change History (36)

comment:1 by Carl Eugen Hoyos, 12 years ago

Priority: importantwish

Could you add a little information about what this is?
The links you gave do not easily answer it, and the string "codec/protocol" in your original post does not make it better, either.

comment:2 by benito2313, 12 years ago

Ow sorry my bad, it was supposed to be Wish.

I dont know the technical detail, but i will asked somebody to comment on this.
He does understand the technical detail.

comment:3 by Basje, 12 years ago

I am not THE export, I did manage to get some streams locations. For instance this one:

http://upc-nl-0041.upc.adaptive.level3.net/upc-nl/0041/01.m3u8, the content of the url I pasted here:

http://pastebin.com/P6w3MeyZ

The problem is that they IP block the internal streams, but if you are on a allowed IP, XBMC still cannot open it.

On my Add-on's issue tracker you can find more XBMC logs:

http://code.google.com/p/xot-uzg/issues/detail?id=369

in reply to:  1 comment:4 by benito2313, 12 years ago

Replying to cehoyos:

Could you add a little information about what this is?
The links you gave do not easily answer it, and the string "codec/protocol" in your original post does not make it better, either.

Did you have the chance yet to take a look, somebody i know posted a reply about widevine.
Thank you in advance.

comment:5 by Vehka, 12 years ago

This old discussion talks about a Samsung patch for widevine: http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2009-December/062689.html

Is this of any use?

comment:6 by benito2313, 12 years ago

Hello,

I was wondering if somebody had the time yet to take à look at adding widevine to ffmpeg lib?
It seems like more and more sites are using this, and also more and more countrys.

I would like to help if its needed to be tested.

Regards,

Benito2313

in reply to:  6 comment:7 by Carl Eugen Hoyos, 12 years ago

Replying to benito2313:

I was wondering if somebody had the time yet to take à look at adding widevine to ffmpeg lib?

Was there any information posted here in the ticket what widevine is?

It seems like more and more sites are using this, and also more and more countrys.

Could you point us to a few examples? This may also explain above question...

comment:8 by benito2313, 12 years ago

In the netherlands we have a cable company that uses widevine to watch online live tv streaming. If i dont install it then i cannot watch it.

i have to download it on the following page: https://tools.google.com/dlpage/widevine

The link of the url is the following:
http://link.theplatform.com/s/Fly0AC/orpu1zFcfvsm?format=SMIL

One of the streams is pointing to the following url:
http://upc-nl-0051.upc.adaptive.level3.net/upc-nl/0051/01.m3u8

In the following links you can see what widevine is:
Video optimization
http://www.widevine.com/video_optimization.html

Multiplatform DRM for Over-the-Top Video Delivery
http://www.widevine.com/drm.html

If you need more information just let me know

by benito2313, 12 years ago

Attachment: m3u8 - xbmc.log added

M3U8 - XBMC LOG

comment:9 by benito2313, 12 years ago

In the above file you can find a xbmc log file when playning the strm file with the following url: http://upc-nl-0051.upc.adaptive.level3.net/upc-nl/0051/01.m3u8

comment:10 by Carl Eugen Hoyos, 12 years ago

Component: undeterminedavformat
Version: unspecifiedgit-master

Do I understand correctly that Widevine is a DRM solution for HLS?

comment:11 by benito2313, 12 years ago

Yes, i am à bit new to all of this so did not know how to explain What widevine does.
Is this the same as codec/protocol for video widevine? I think so but i am not sure.

Are you going to develop à support for widevine?

Best Regards,

Benito2313

in reply to:  11 ; comment:12 by Carl Eugen Hoyos, 12 years ago

Replying to benito2313:

Yes, i am à bit new to all of this so did not know how to explain What widevine does.
Is this the same as codec/protocol for video widevine? I think so but i am not sure.

I think it is safe to say that widevine is not a codec.

in reply to:  12 comment:13 by benito2313, 12 years ago

Replying to cehoyos:

Replying to benito2313:

Yes, i am à bit new to all of this so did not know how to explain What widevine does.
Is this the same as codec/protocol for video widevine? I think so but i am not sure.

I think it is safe to say that widevine is not a codec.

Oke.

But are you going to develop the support for widevine?
If you need any testing, i could help. (I think :P).

comment:14 by Basje, 12 years ago

I am not 100% into Widevine, but it uses a specific way of retreiving LIVE video data. Similar to the m3u8, but as far as I can see, the first m3u8 URL only provides part of the streamdata and the rest is passed on in the video stream itself.

comment:15 by benito2313, 12 years ago

If you want to play the stream that i have put on before, you need a internetconnection of the cable company.
At least that is what they say, i cannot watch tv on the website if i am on an other provider. Dont know if this is helpfull but i thought you should know.

But other websites, and cable companies here, also use widevine, there for it would by handy if FFmpeg could support it.

By the way doing a great job FFMPEG

comment:16 by benito2313, 12 years ago

Cehoyos,

did you had time to take a look yet?
let me know if you need any help.

comment:17 by Carl Eugen Hoyos, 12 years ago

Yes, I looked at it a week ago and asked if Widevine is a DRM implementation for HLS, your answer - if I understood correctly - was that it may be a codec. I am still not convinced that Widevine is a codec.

comment:18 by benito2313, 12 years ago

Thank you for your response

Yes, but it was a question and you answerd that its safe to say its not codec.
So its not a codec, but are you able to make a support for this?

and yes i think widevine is a drm implementation for hls.

Regards,

benito2313

comment:19 by Carl Eugen Hoyos, 12 years ago

Keywords: drm added
Status: newopen

I admittedly don't know much about DRM but I honestly wonder what kind of DRM this is that could be implemented in FFmpeg (which by definition makes every kind of DRM completely useless).

comment:20 by benito2313, 12 years ago

Could you also look at the part of the widevine: video optimizer.
http://www.widevine.com/video_optimization.html
if i want to play the stream on the internet site then i need to download it at this link: https://tools.google.com/dlpage/widevine.
And this is the part of video optimization
Could this also be implemented in ffmpeg?

Last edited 12 years ago by benito2313 (previous) (diff)

comment:21 by Basje, 12 years ago

I think that Widevine has multiple forms of DRM. Some are IP restrictions or GEO location restrictions. Those don't use any DRM encryption, so those streams should be an option for ffmpeg?

comment:22 by benito2313, 12 years ago

Cehoyos,
when i post the request on the XMBC forum, they are talking about codec?
http://forum.xbmc.org/showthread.php?tid=152387&pid=1301265#pid1301265

i think that its not the drm part of it but the video optimization: http://www.widevine.com/video_optimization.html
You can download it from the following link: https://tools.google.com/dlpage/widevine...installed=

When i open the .exe file with 7zip i can see a few dll files, dont know you can do something with it.

in reply to:  22 comment:23 by Carl Eugen Hoyos, 12 years ago

Replying to benito2313:

You can download it from the following link: https://tools.google.com/dlpage/widevine...installed=

This does not appear to be a valid link.

comment:25 by benito2313, 12 years ago

Hello Cehoyos,

I was wondering if you had take à look yet?

comment:27 by Carl Eugen Hoyos, 12 years ago

Widevine consists of a dll that the demuxer (or protocol) has to use to get an unencrypted stream (afaict).

There are probably three ways to implement this:

Use Samsung's FFmpeg patch to allow libavformat to use (an old version?) of the library. This may be a violation of FFmpeg (and Samsung) copyright, I don't know where the source code could be found and the patch may not work with current Widevine.

Write a new wrapper: I don't think you would be allowed to distribute the resulting FFmpeg binary.

Reverse engineer Widevine: This is ok from FFmpeg pov, but may get the developer into trouble.

I would tend to close this ticket as wontfix but since recently a similar ticket was reopened, we can also leave the enhancement request open.

comment:28 by benito2313, 12 years ago

Thanks Cehoyos for taking a look.

If i may ask which similar ticket is it?
Than i can take a look.

comment:29 by Kii-lon, 10 years ago

Hello everyone, i'm a new user here but I have a reason for wanting to post here.

I've been searching all over the internet for a way to say...decrypt an .wvm
file as I have gotten a hold of such a file from an foreign streaming site.
I never heard of an .wvm file until just a few days ago and been wondering how
to play and decode such a file...but can not.

After all that I have searched, I'm still have not found any way to remove the DRM
nor found any way to play back such a file.

Along my search I discovered this here thread when looking up if FFmpeg can play/decode an widevine .wvm file but there's no support for it at all. Indeed...

What captured my eye though is how someone mention that there's an Samsung Patch for FFmpeg that might have support to play/decrypt (I think) a widevine file.

It's hard guess and the original source for the Samsung FFmpeg file is gone so there's no way to find out if it's possible or not...

However, just a few minutes ago, I may...of found the Samsung FFmpeg source on an random git type site and I have no idea how to use such file or if it works but I found that the FFmpeg has the "widevine.c" file in an libav folder or somesort.

Anyways I hope you guys don't mind me posting this but here's the link to
file in a zip format that I uploaded on "Mega".

MEGA: MEGA - Samsung FFmpeg?

If any of you guys can be kind, please give the file a look and see if it's indeed the so-called Samsung Patch, I hope i'm not wrong haha.

If you want an WVM file to test well...the only WVM file is an
cartoon I got from a foreign streaming site so here's the link to it:

MEGA: MEGA - .WVM file

You don't have to download the .wvm file but if you want to, here you go.
Sorry if this isn't of help or you don't appreciate these links i'm posting.

Still I hope it helps in the playback of Widevine protected media and maybe
this can be helpful in providing Widevine support in FFmepg...in the future! =)

That is all and your welcome.
May it be of help to y'all!

Last edited 8 years ago by Kii-lon (previous) (diff)

in reply to:  29 comment:30 by Carl Eugen Hoyos, 10 years ago

Replying to Kii-lon:

However, just a few minutes ago, I may...of found the Samsung FFmpeg source on an random git type site

Is there a reason why you don't want to post the link?

comment:31 by Kii-lon, 10 years ago

Oh no there's no reason haha, here's the link to it if you want to check for yourself:
https://bitbucket.org/Mali_Laurent/ps50c550/src/b9dfcccdd349/Sources/SVN-r19089/?at=master

...I remember this site and it's no random git-related site.
I guess I couldn't remember when I found this FFmpeg.

Anywho you can look there Cehoyos. =)

comment:32 by Kii-lon, 10 years ago

Hey all, just posting back here again to know if anything new is happening
on widevine...

Still don't know how to use the src files but yeah, hopefully
it works with decoding/reading/playing back .wvm files hehe!

Also cehoyos, I posted the link to the original site
where I found the src files that contains the widevine
files and stuff. Just reminding you if you haven't looked at it yet...

Anyways i'm a going so see y'all later! =)
I'll be keeping an eye on this post/ticket hehe.

in reply to:  29 ; comment:33 by Stefano Sabatini, 10 years ago

Replying to Kii-lon:
[...]

However, just a few minutes ago, I may...of found the Samsung FFmpeg source on an random git type site and I have no idea how to use such file or if it works but I found that the FFmpeg has the "widevine.c" file in an libav folder or somesort.

Anyways I hope you guys don't mind me posting this but here's the link to
file in a zip format that I uploaded on both "Uppit" and "Mega".

Uppit: Uppit - Samsung FFmpeg?
MEGA: MEGA - Samsung FFmpeg?

If any of you guys can be kind, please give the file a look and see if it's indeed the so-called Samsung Patch, I hope i'm not wrong haha.

[...]

The second link (first one required a subscription) contained a hacked version of FFmpeg SVN rev19089 containing a wrapper to some proprietary library, and as is is an ugly hack which cannot be upstreamed.

Note that widevine.c is implemented as a protocol, so it should be considered a protocol which allows to encrypt content (probably through DRM or similiar). AFAIK no effort was done by anyone of the FFmpeg team to reverse engineer the protocol format. Today I heard about partially encrypted files which can be played for the first few seconds (having such sample may help).

in reply to:  33 comment:34 by Carl Eugen Hoyos, 10 years ago

Replying to saste:

The second link contained a hacked version of FFmpeg SVN rev19089 containing a wrapper to some proprietary library,

Isn't this just the known Samsung distribution?

comment:35 by Stefan Neufeind, 9 years ago

Cc: ffmpeg@stefan-neufeind.de added
Note: See TracTickets for help on using tickets.