- 18 Aug, 2015 1 commit
-
-
Added the ability to view both the transmuxed video and audio playback automatically Supports segments with only one of the two tracks
jrivera committed
-
- 31 Jul, 2015 38 commits
-
-
Suggest ffmpeg + bento4. ffmpeg by itself produces an invalid esds and I couldn't find the correct set of flags to get mp4box to fragment an mp4 in an MSE-compatible way.
David LaPalomento committed -
Create textifyMp4() to output a text representation of an inspected mp4. It's more concise than straight JSON.stringify() so hopefully it will allow for quicker comparisons between working and transmuxed MP4s.
David LaPalomento committed -
Previously, audio media segments were accepted without error but SourceBuffered.buffered.length was still zero. After this change, the buffered property seems to be read appropriately and no errors are generated but audio is still not output.
David LaPalomento committed -
The generated fragmented mp4 for the audio track can now be appended to a source buffer in Chrome 43 without errors but the buffered duration remains zero after the operation completes. All current tests pass. Sample table entries and mdat contents look consistent with an audio-only, fragmented mp4 generated by ffmpeg though some discrepancies exists in track metadata still.
David LaPalomento committed -
On the mp4 transmux analyzer page, only present the media segment diff if a working media segment is provided. Similarly, only diff the init segments if a working init segment is provided. This cuts down on output that will always vary because TS files do not have the notion of a separate init segment.
David LaPalomento committed -
Modify the mp4 generator to inspect audio tracks and generate a working initialization segment. Hook the audio init segment up to the mp4 transmuxing test page.
David LaPalomento committed -
Use QUnit's string diff to highlight potential incompatibilities between the transmuxed and expected output.
David LaPalomento committed -
Replace copy-pasted page title with something that reflects the actual MSE demo page.
David LaPalomento committed -
Create a page that shows the media source extensions-compatible transmuxing process in an actual video element. Only tested in Chrome.
David LaPalomento committed -
Scale sample durations so to match the timescales specified elsewhere in the media segment. Recreate Uint8Arrays for testing so that equality tests pass in phantomjs. Phantom apparently counts typed arrays with different byteOffsets as not equal.
David LaPalomento committed -
Look into the contents of mdats and parse out the contained NAL unit types.
David LaPalomento committed -
Working examples of segmented mp4s have included an sdtp box, even though it's duplicative of information in the trun box. It's easy to generate however, so add it to the inspector and generator, and update the transmuxer tests to expect sane output.
David LaPalomento committed -
Parse and generate the sample flags fields. Detect key frames based on NAL unit type. Pass along pts and dts during the parsing process.
David LaPalomento committed -
Output real tfhd info. Prepare trun to accept sample information-- this still needs to be generated properly by the transmuxer.
David LaPalomento committed -
Translate compatible brand byte sequences into their string equivalents for ftyp and styp boxes.
David LaPalomento committed -
Invoke the transmuxer on muxer/mp4.html and display the results of inspecting the output.
David LaPalomento committed -
-
-
Move dependencies into the right order. Stub out some end-to-end transmuxer tests.
David LaPalomento committed -
Create example binary data that is a valid Media Segment and does not produce decode errors when coupled with an appropriate media segment. Add some free-form notes from media source extensions research so far. Update the testing sandbox player.
David LaPalomento committed -
Parse out a track fragment decode time box. According to the Media Source byte stream format spec, at least one tfdt is required per media segment.
David LaPalomento committed -
-
-
-
-
-
-
-
-
Make the debug video and media source available in a larger scope. Every time a new segment is selected, forward they bytes into the active source buffer.
David LaPalomento committed -
Create test cases for a moof box and sample mfhd, traf, and tfhd sub-boxes. Fix the source buffer codec so that the debug code on the mp4 muxer page works. The issue was that specifying an audio codec but then failing to include an audio track in the init segment generated a media decode error.
David LaPalomento committed -
Add support for a number of new boxes in the generator and inspector. Bring some existing generated boxes more closely into line with a working init segment.
David LaPalomento committed -
Build helper classes to construct boxes for mp4s. Use the mp4 inspector to validate the generated boxes are sensical. Remove the stubbed Transmuxer because it's not implemented yet and it may not make sense once things come together a bit more. Left some MediaSource test code in mp4.html for debugging purposes. The tests all pass but we're still not quite generating a valid init segment.
David LaPalomento committed -
Add stubs for the transmuxer and a new set of qunit tests. Update the muxer mp4 test page to invoke the stubbed object.
David LaPalomento committed -
Modify the mp4 inspector to use the right field widths when parsing version 0 mp4s. Add a test page to inspect mp4s from the file system. Don't reference the data bytes of an mdat box so that the resulting data structure isn't too big to be reasonably output.
David LaPalomento committed -
As preparation for building a tool to transform mp2t files into mp4s, create a javascript tool that parses an mp4 file. Remove the local qunit so that karma and direct qunit testing happens with the same version of the library. Force the tech to run during tests so that Safari doesn't use native HLS.
David LaPalomento committed
-
- 27 Feb, 2015 1 commit
-
-
Decode the fields of simple ID3 tags. Adjust the starting PTS value for the metadata stream so that it aligns with video and audio streams.
David LaPalomento committed
-