-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ID3 Tag on the packet #22
Comments
I did some tests with my friend @bernardocamilo. We used Apple's simple stream for our tests:
We can see the ID3 tag is present on the first audio segment:
According to the specification, the header is the first 10 bytes:
The next 63 bytes are the ID3v2 frame:
Frame's header is:
According to the frames specification, the PRIV frame format is:
So, the owner is This is exactly what panto's documentation says:
The timestamp of the other files are:
The MPEG2 timestamp unit is 1/90000 second. The delta between file 1 and 0 is 898612 or 9.98458s (898612/90000), the exact duration of the first segment. The ID3 tag is not present on ts files, so this module should generate it. That shouldn't be that difficult, since only the timestamp will vary and it should be possible to get the timestamp from the video file. |
Hi @jbochi and @bernardocamilo, thanks for the effort in making this analysis. The packets being manipulated are AVPacket structures. |
Hi @flavioribeiro. I finally implemented it in lua: jbochi/lua_jit_extract_audio@565bd16 It should be easy to backport it to C now :) |
great! 👍 thank you @jbochi |
as per HLS spec, Each Elementary Audio Stream segment MUST signal the timestamp of its first sample with an ID3 PRIV tag at the beginning of the segment. The ID3 PRIV owner identifier MUST be "com.apple.streaming.transportStreamTimestamp".
https://ffmpeg.org/doxygen/trunk/structplaylist.html#ae271f3bc6020caa11e50ae29f9a10966
https://ffmpeg.org/doxygen/trunk/hls_8c_source.html#l01476
The text was updated successfully, but these errors were encountered: