Git Product home page Git Product logo

dashencrypt's People

Contributors

chartelt avatar cl-dt avatar eyemirage avatar lmeadors avatar mstattma avatar sannies avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dashencrypt's Issues

Build fail

First it was missing com.googlecode.mp4parser 1.1.8, I went and serached for it and I saw that there is no 1.1.8 - so I changed it do 1.1.9.
This worked,

now I have: while building 1.7.21
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /Users/samek/Downloads/dashencrypt-dash.encrypt-1.7.21/dash.fragmencrypter/src/main/java/com/castlabs/dash/dashfragmenter/sequences/DashFileSetSequence.java:[1178,54] cannot find symbol
symbol: variable Base64
location: class com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence
[ERROR] /Users/samek/Downloads/dashencrypt-dash.encrypt-1.7.21/dash.fragmencrypter/src/main/java/com/castlabs/dash/dashfragmenter/sequences/DashFileSetSequence.java:[1184,50] cannot find symbol
symbol: variable Base64
location: class com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence
[ERROR] /Users/samek/Downloads/dashencrypt-dash.encrypt-1.7.21/dash.fragmencrypter/src/main/java/com/castlabs/dash/dashfragmenter/representation/AbstractRepresentationBuilder.java:[320,54] cannot find symbol
symbol: variable Base64
location: class com.castlabs.dash.dashfragmenter.representation.AbstractRepresentationBuilder
[ERROR] /Users/samek/Downloads/dashencrypt-dash.encrypt-1.7.21/dash.fragmencrypter/src/main/java/com/castlabs/dash/dashfragmenter/representation/AbstractRepresentationBuilder.java:[321,57] cannot find symbol
symbol: variable Base64
location: class com.castlabs.dash.dashfragmenter.representation.AbstractRepresentationBuilder
[ERROR] /Users/samek/Downloads/dashencrypt-dash.encrypt-1.7.21/dash.fragmencrypter/src/main/java/com/castlabs/dash/dashfragmenter/representation/AbstractRepresentationBuilder.java:[331,57] cannot find symbol
symbol: variable Base64
location: class com.castlabs.dash.dashfragmenter.representation.AbstractRepresentationBuilder
[INFO] 5 errors

I tried it on OSX and Ubuntu 14.04 - same error. Also I've tried compiling com.googlecode.mp4parser and entering it in my own repo.

Stripping file extensions from inputfiles for ID and URL generation

For inputfiles with name (and audio type):
tearsofsteel_4k.ac3.mp4 or tearsofsteel_4k.ec3.mp4

resulting BaseURLs for both files will be set to:
tearsofsteel_4k.mp4
and Representation ids:
id="tearsofsteel_4k.mp4"

Expected:
id="tearsofsteel_4k.ac3.mp4"
id="tearsofsteel_4k.ec3.mp4"
and
tearsofsteel_4k.ac3.mp4
tearsofsteel_4k.ec3.mp4

Doesn`t happen though for files with name tearsofsteel_4k_ITA.heaac.mp4

Set @timescale of SegmentList.

According to ISO/IEC 23009-1:2012(5.3.9.2.2), if @timescale is not present on any level, it shall be set to 1. So SegmentListManifestWriterImpl class should check and set @timescale of SegmentList, otherwise the segment timeline cannot be converted properly.

Invalid output directory

By default it outputs files to the root directory (/), it should be rather current working directory.

DASH CENC PSSH Box

Hi,

I am using dashencrypt to create dash streams with cenc encryption.But the output mpd is not having the pssh box. Can you please let me know how to generated mpd for dash cenc for widevine

Input file names starting with a number result in invalid XML Manifest

I.e. dashing a file with name "3450924385.mp4" results in a manifest entry like:

"Representation codecs="avc1.64001f" width="640" height="360" frameRate="25000/1000" sar="1:1" bandwidth="1275400" id="3450924385""

Field "id" may not start with a number though. Ideally this is automatically prefixed or catched in some other way.

Build fails.

When I try to build the source it gives me this error:

Failed to execute goal on project dash.fragmencrypter: Could not resolve dependencies for project
com.castlabs.dash:dash.fragmencrypter:jar:1.7-SNAPSHOT: Failure to find
com.googlecode.mp4parser:isoparser:jar:1.0.7.2-SNAPSHOT in
https://oss.sonatype.org/content/repositories/comgooglecodemp4parser-1062 was cached in the local
repository, resolution will not be reattempted until the update interval of mp4parserstaging has
elapsed or updates are forced

javax.crypto.IllegalBlockSizeException

I've used this command

java -jar dash.fragmencrypter-1.2.8-exe.jar encrypt vid_rep_1.mp4 vid_rep_2.mp4 vid_rep_3.mp4 sou_rep_1.mp4 --secretKey 000102030405060708090a0b0c0d0e0f --uuid 0696f5b0-b612-11e3-a5e2-0800200c9a66 --outputdir XXXcom.castlabs.dash dash.fragmencrypter 1.2.8

And get the following output. Please suggest.

vid_rep_1.mp4[1]'s starttime after edits: 0.0
vid_rep_2.mp4[1]'s starttime after edits: 0.0
vid_rep_3.mp4[1]'s starttime after edits: 0.0
sou_rep_1.mp4[1]'s starttime after edits: -0.105375

Jan 12, 2015 10:00:22 p.m. com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence createSingleTrackDashedMp4s
INFO: Creating model for vid_rep_1.mp4...
Jan 12, 2015 10:00:25 p.m. com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence createSingleTrackDashedMp4s
INFO: Creating model for vid_rep_3.mp4...
Jan 12, 2015 10:00:28 p.m. com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence createSingleTrackDashedMp4s
INFO: Creating model for vid_rep_2.mp4...
Jan 12, 2015 10:00:31 p.m. com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence createSingleTrackDashedMp4s
INFO: Creating model for sou_rep_1.mp4...
Jan 12, 2015 10:00:33 p.m. com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence writeFilesSingleSidx
INFO: Writing...
Jan 12, 2015 10:00:36 p.m. com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence writeFilesSingleSidx
INFO: Done.
Jan 12, 2015 10:00:36 p.m. com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence writeFilesSingleSidx
INFO: Writing...
Jan 12, 2015 10:00:40 p.m. com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence writeFilesSingleSidx
INFO: Done.
Jan 12, 2015 10:00:40 p.m. com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence writeFilesSingleSidx
INFO: Writing...
Jan 12, 2015 10:00:46 p.m. com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence writeFilesSingleSidx
INFO: Done.
Jan 12, 2015 10:00:46 p.m. com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence writeFilesSingleSidx
INFO: Writing...
Exception in thread "main" java.lang.RuntimeException: javax.crypto.IllegalBlockSizeException: 5 trailing bytes
at com.googlecode.mp4parser.boxes.cenc.CencEncryptingSampleList$EncryptedSampleImpl.writeTo(CencEncryptingSampleList.java:147)
at com.googlecode.mp4parser.authoring.builder.FragmentedMp4Builder$1Mdat.getBox(FragmentedMp4Builder.java:223)
at com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence.writeFilesSingleSidx(DashFileSetSequence.java:375)
at com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence.writeFiles(DashFileSetSequence.java:247)
at com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence.run(DashFileSetSequence.java:196)
at com.castlabs.dash.dashfragmenter.cmdlines.DashFileSetEncrypt.run(DashFileSetEncrypt.java:139)
at com.castlabs.dash.dashfragmenter.Main.main(Main.java:48)
Caused by: javax.crypto.IllegalBlockSizeException: 5 trailing bytes
at gnu.javax.crypto.jce.cipher.CipherAdapter.engineDoFinal(libgcj.so.10)
at javax.crypto.Cipher.doFinal(libgcj.so.10)
at javax.crypto.Cipher.doFinal(libgcj.so.10)
at com.googlecode.mp4parser.boxes.cenc.CencEncryptingSampleList$EncryptedSampleImpl.writeTo(CencEncryptingSampleList.java:142)
...6 more

create KDF for CEK transport

create KDF for key transport. Allow multiple encryption certs.
Whenever a certificate is given in the arguments (something like -c /path/to/cert) only KDF is written.

dash command tries to write on root folder

I'm using Mac OS x 10.10.5 with java -version

java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)

When I run the dash command:

$ java -jar ../dash.fragmencrypter-1.7.18-SNAPSHOT-exe.jar dash vid_rep_1.mp4 vid_rep_2.mp4 vid_rep_3.mp4 vid_rep_4.mp4 sou_rep_1.mp4 .
com.castlabs.dash dash.fragmencrypter 1.7.18-SNAPSHOT
INFO: Adjusted earliest presentation of vid_rep_1.mp4[1]' from 0.0 to 0.036281179138321996
INFO: Adjusted earliest presentation of vid_rep_2.mp4[1]' from 0.0 to 0.036281179138321996
INFO: Adjusted earliest presentation of vid_rep_3.mp4[1]' from 0.0 to 0.036281179138321996
INFO: Adjusted earliest presentation of vid_rep_4.mp4[1]' from 0.0 to 0.036281179138321996
INFO: Adjusted earliest presentation of sou_rep_1.mp4[1]' from -0.036281179138321996 to 0.0
INFO: Creating model for sou_rep_1.mp4...
INFO: Creating model for vid_rep_1.mp4...
INFO: Creating model for vid_rep_2.mp4...
INFO: Creating model for vid_rep_4.mp4...
INFO: Creating model for vid_rep_3.mp4...
INFO: Writing /sou_rep_1.mp4
/sou_rep_1.mp4 (Permission denied)

It tries to write in the root folder.

If I add sudo it works, but my resulting files are all located in the root folder.

The available documentation does not explain how to change the output folder.

$ sudo java -jar ../dash.fragmencrypter-1.7.18-SNAPSHOT-exe.jar dash vid_rep_1.mp4 vid_rep_2.mp4 vid_rep_3.mp4 vid_rep_4.mp4 sou_rep_1.mp4
Password:
com.castlabs.dash dash.fragmencrypter 1.7.18-SNAPSHOT
INFO: Adjusted earliest presentation of vid_rep_1.mp4[1]' from 0.0 to 0.036281179138321996
INFO: Adjusted earliest presentation of vid_rep_2.mp4[1]' from 0.0 to 0.036281179138321996
INFO: Adjusted earliest presentation of vid_rep_3.mp4[1]' from 0.0 to 0.036281179138321996
INFO: Adjusted earliest presentation of vid_rep_4.mp4[1]' from 0.0 to 0.036281179138321996
INFO: Adjusted earliest presentation of sou_rep_1.mp4[1]' from -0.036281179138321996 to 0.0
INFO: Creating model for vid_rep_2.mp4...
INFO: Creating model for vid_rep_4.mp4...
INFO: Creating model for sou_rep_1.mp4...
INFO: Creating model for vid_rep_3.mp4...
INFO: Creating model for vid_rep_1.mp4...
INFO: Writing /vid_rep_2.mp4
INFO: Writing /vid_rep_4.mp4
INFO: Writing /sou_rep_1.mp4
INFO: Writing /vid_rep_3.mp4
INFO: Writing /vid_rep_1.mp4
INFO: Writing /Manifest.mpd
INFO: Finished fragmenting of 73MB in 1.0s

GoogleCode Mp4Parser 1.0.5.6 not available in sonos staging repo, cannot compile fragencrypter.

        <groupId>com.googlecode.mp4parser</groupId>
        <artifactId>isoparser</artifactId>
        <version>1.0.5.6</version>

I'm assuming the 1.0.5.6 is being resolved from this repository as specified in the pom:
https://oss.sonatype.org/content/repositories/comgooglecodemp4parser-1055

This repository doesn't resolve though and I can't complete the build of the fragencrypter. Can someone verify the repository path and version?

Working version

Now project have some incompatibles.
On project version 1.7.30 googlecode.mp4parser version 1.1.18
Above 1.7.30 project versions have googlecode.mp4parser version 1.1.19 but In repository its is missing! Another (old) versions have problems too with googlecode.mp4parser versions in that repo (missing at all).

I am novice in JAVA and NetBeans, and I think that now used Maven repo for all in this project (that maybe truth?).
And, your https://oss.sonatype.org/content/repositories/comgooglecodemp4parser-1085 repository with ID="comgooglecodemp4parser-1085" not found. Oh so..

Negative S@t value problem

When New dashencrypt (1.0.2x) handles some files, it would generate negative S@t value in manifest (unsigned format) and %Time% in media segment file name (signed format).

I used ffprobe to check these input files and found the problem may be caused by the begining packets with negative DTS and PTS>=0.

Old dashencrypt (1.0.1x) can handle these files and generate segment list correctly.

sidx earliest_presentation_time

The correct behavior is seemingly to always start with zero and completely rely on the edit list box to cope with high profile pts offsets.

Audio output cannot be played in chrome

I tried to DASH a video file by following the steps described in the wiki. However I cannot play the video in my browser (Chrome version 43) using dash.js player. I get error MEDIA_ERR_SRC_NOT_SUPPORTED. After looking around a bit I noticed that the audio output of dashencrypt has the codec mp4a.40.5 (the samples on internet use codec mp4a.40.2 and I can play them). I then tried to DASH the video representations only and everything worked fine i.e. I can play it in my browser.
How can I correctly DASH the audio representation into mp4a.40.2?

Always crashed when process some video files

When running this command for some video file:

java -jar dashencrypt/dash.fragmencrypter-1.7.31-SNAPSHOT-exe.jar encrypt xxxx.mp4 -o xxxxt.mp4 --secretKey xxxxxxxxxx --uuid xxxxxxx

It failed with this error:

com.castlabs.dash dash.fragmencrypter 1.7.44-SNAPSHOT
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 19
	at com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence.alignEditsToZero(DashFileSetSequence.java:1150)
	at com.castlabs.dash.dashfragmenter.sequences.DashFileSetSequence.run(DashFileSetSequence.java:264)
	at com.castlabs.dash.dashfragmenter.cmdlines.DashFileSetEncrypt.run(DashFileSetEncrypt.java:98)
	at com.castlabs.dash.dashfragmenter.Main.main(Main.java:60)

About 5% of the videos in my collection failed. I am going to debug it tomorrow but any thoughts about this?

I am using the latest master.

Crashing when processing video files

For some video files dash encryptor is crashing with the below stack

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.elementData(ArrayList.java:418)
at java.util.ArrayList.get(ArrayList.java:431)
at org.mp4parser.muxer.container.mp4.FragmentedMp4SampleList$1.getSampleEntry(FragmentedMp4SampleList.java:204)
at com.castlabs.dash.dashfragmenter.representation.RepresentationBuilderImpl.createTraf(RepresentationBuilderImpl.java:514)
at com.castlabs.dash.dashfragmenter.representation.RepresentationBuilderImpl.createMoof(RepresentationBuilderImpl.java:310)
at com.castlabs.dash.dashfragmenter.representation.RepresentationBuilderImpl.get(RepresentationBuilderImpl.java:288)
at com.castlabs.dash.dashfragmenter.representation.RepresentationBuilderImpl.getIndexSegment(RepresentationBuilderImpl.java:338)
at com.castlabs.dash.dashfragmenter.encrypt2.ManifestCreation.addSegmentBase(ManifestCreation.java:166)
at com.castlabs.dash.dashfragmenter.cmdlines.Encrypt2Command.run(Encrypt2Command.java:226)
at com.castlabs.dash.dashfragmenter.Main.main(Main.java:59)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.