|
|
(3 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| == Introduction ==
| | #REDIRECT [[OggWrit]] |
| Ogg Writ is a text phrase codec. While its primary purpose is to embed
| |
| subtitles or captions in a Theora stream, its design makes it useful
| |
| for many other purposes. It could provide lyrics to song encoded in
| |
| Vorbis, a transcript to a political debate encoded in Speex, or even
| |
| incorporate a live chat session as part of a continuous video stream.
| |
| | |
| One of the unique aspects of Writ is its discontinuous nature, that is,
| |
| unlike other Ogg codecs the granules for which seperate packets effect
| |
| may overlap. See the Granules and Muxing section
| |
| below for how this works.
| |
| | |
| | |
| === SVN ===
| |
| Current Ogg Writ development is on Xiph SVN as /trunk/writ/. It's
| |
| being developed to use libogg2, so you'll need both to work on it.
| |
| The reference encoder and decoder are available as part of the py-ogg2
| |
| package which is available on Xiph SVN as /trunk/py-ogg2/.
| |
| | |
| | |
| <B>This is a (near final) working draft of the spec</B><BR>
| |
| Writ has been designed so that encoders/decoders can support a bare
| |
| minimum and be fully compatable with future subversions. Each subversion
| |
| adds a new feature, some building on others, adding a new header packet
| |
| and likely a new field to each body packet.
| |
| <P>
| |
| Decoders should ignore header packets beyond what they were written to
| |
| support and also ignore extra fields in data packets beyond their
| |
| current version. This allows new features to be added without requiring
| |
| that all software, or even most software, to support them.
| |
| <P>
| |
| We will be conservative about adding future subversions.
| |
| | |
| <pre>
| |
| Header Packet 0 (BOS, 16 bytes):
| |
| 0x00 ( 8 bit Header 0)
| |
| "writ" (LSB 0x74697277) (32 bit codec identification)
| |
| version ( 8 bit unsigned int, 0 = Alpha)
| |
| subversion ( 8 bit unsigned int)
| |
| granulerate_numerator (32 bit unsigned int)
| |
| granulerate_denominator (32 bit unsigned int)
| |
| | |
| Data Packet (each):
| |
| 0xFF ( 8 bit 0xFF = data packet)
| |
| granule_start (64 bit signed integer)
| |
| granule_duration (32 bit unsigned integer)
| |
| text_length ( 8 bit unsigned integer)
| |
| text_string (variable-length UTF-8 string)
| |
| | |
| | |
| <B>Subversion 1 adds multiple language support</B>
| |
| | |
| Header Packet 1 (Language Definition, 8+ bytes) :
| |
| 0x01 ( 8 bit Header 1)
| |
| "writ" (LSB 0x74697277) (32 bit codec identification)
| |
| num_languages ( 8 bit unsigned int)
| |
| [repeated 1+num_languages times] :
| |
| language_length ( 8 bit unsigned int)
| |
| language_string (0+language_length rfc3066)
| |
| language_desc_length ( 8 bit unsigned int)
| |
| language_desc_string (0+language_desc_length UTF-8)
| |
| | |
| Data Packet (each):
| |
| 0xFF ( 8 bit 0xFF = data packet)
| |
| granule_start (64 bit signed integer)
| |
| granule_duration (32 bit unsigned integer)
| |
| [repeated num_languages times] :
| |
| text_length ( 8 bit unsigned integer)
| |
| text_string (variable-length UTF-8 string)
| |
| | |
| | |
| <B>Subversion 2 adds text window support</B>
| |
| | |
| Header Packet 2 (Window Definition, 10+ bytes) :
| |
| 0x02 ( 8 bit Header 2)
| |
| "writ" (LSB 0x74697277) (32 bit codec identification)
| |
| location_scale_x (16 bit unsigned int)
| |
| location_scale_y (16 bit unsigned int)
| |
| num_windows ( 8 bit unsigned int)
| |
| [if (window_num > 0) repeated window_num times] :
| |
| location_x (variable length, see below)
| |
| location_y (variable length, see below)
| |
| location_width (variable length, see below)
| |
| location_height (variable length, see below)
| |
| alignment_x ( 2 bit alignment, see below)
| |
| alignment_y ( 2 bit alignment, see below)
| |
| | |
| Data Packet (each):
| |
| 0xFF ( 8 bit 0xFF = data packet)
| |
| granule_start (64 bit signed integer)
| |
| granule_duration (32 bit unsigned integer)
| |
| [repeated num_languages times] :
| |
| text_length ( 8 bit unsigned integer)
| |
| text_string (variable-length UTF-8 string)
| |
| [if (window_num > 1)] :
| |
| window_id ( 8 bit unsigned integer)
| |
| | |
| | |
| <B>Example Stream</B>
| |
| Header Packet 0
| |
| version 0
| |
| subversion 2
| |
| granulenum 1
| |
| granuledom 1
| |
| \x00writ\x00\x02\x01\x00\x00\x00\x01\x00\x00\x00
| |
| | |
| Header Packet 1
| |
| num_languages 2
| |
| Language 0:
| |
| language en
| |
| language_desc English
| |
| Language 1:
| |
| language es
| |
| language_desc Spanish
| |
| \x01writ\x01\x02en\x07English\x02es\x07Spanish
| |
| | |
| Header Packet 2
| |
| location_scale_x 4000 (12 bits)
| |
| location_scale_y 270 ( 9 bits)
| |
| num_windows 2
| |
| Window 0:
| |
| location_x 1
| |
| location_y 2
| |
| location_width 3
| |
| location_height 1
| |
| alignment_x 3 (Full)
| |
| alignment_y 3 (Full)
| |
| Window 1:
| |
| location_x 5
| |
| location_y 6
| |
| location_width 7
| |
| location_height 1
| |
| alignment_x 3 (Full)
| |
| alignment_y 3 (Full)
| |
| \x02writ\xa0\x0f\x0e\x01\x02\x01\x20\x60\x00\x02\x7c\x01\x18\x38\x80\x00\x0f
| |
| | |
| Phrase Packet:
| |
| granule_start 5
| |
| granule_duration 10
| |
| Language 0: "Hello World!"
| |
| Language 1: "Hola, Mundo!"
| |
| window_id 0
| |
| \xff\x05\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x0cHello World!\x0cHola, Mundo!\x00
| |
| | |
| Phrase Packet:
| |
| granule_start 12
| |
| granule_duration 15
| |
| Language 0: "It's a beautiful day to be born."
| |
| Language 1: "Es un día hermoso para que se llevará."
| |
| window_id 1
| |
| \xff\x0c\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x20It's a beautiful day to be born.\x26Es un d\xeda hermoso para que se llevar\xe1.\x01
| |
| | |
| | |
| </pre>
| |
| | |
| == Granules and Muxing ==
| |
| | |
| Granulepos in Writ (as well as future discontinuous codecs) will be by
| |
| start time, not end time, that the data in a given page is tagged for.
| |
| This greatly simplifies this specification (see the old method below).
| |
| | |
| All Writ phrases will be provided at and given the granulepos of their
| |
| start time, ordered by their start time within the logical bitstream.
| |
| | |
| Phrase packets with long durations should be repeated in the logical
| |
| bitstream at regular intervals to ensure that a player seeking to the
| |
| middle of their duration will still see them. These packet copies will
| |
| be identical to their original, including the start and duration fields,
| |
| the granulepos of the page they reside on will be incremented for each
| |
| copy to place it forward on the logical bitstream.
| |
| | |
| No two phrases can start on the same granule. On decoding, each packets'
| |
| start granule is checked against already known packets. If a match is
| |
| found the new packet is ignored. This prevents phrase copies from being
| |
| interpreted as new phrases.
| |
| | |
| == Seeking Example ==
| |
| <pre>
| |
| | |
| Here is a timeline (granule numbers at top, read down) of a sample stream:
| |
| | |
| <- Granules ->
| |
| 0000000000111111111122222222223333333333444444444455555555556666666666
| |
| 0123456789012345678901234567890123456789012345678901234567890123456789
| |
| ___________ ____________ ____________ ____________ _____________
| |
| |_Vorbis____||_Vorbis_____||_Vorbis_____||_Vorbis_____||_Vorbis______|
| |
| ____________________ ____________________________________
| |
| |_A____________>_____| |_D____________>______________>______|
| |
| _________ ___ __________ ___________
| |
| |_B_______| |_C_| |_E________| |_F_________|
| |
| | |
| (note: these have been seperated vertically for easy viewing only)
| |
| | |
| Packet Granule Description
| |
| V H0 0 Vorbis Header 0x01 (page by itself)
| |
| W H0 0 Writ Header 0 (page by itself)
| |
| V H1 0 Vorbis Header 0x03
| |
| V H2 0 Vorbis Header 0x05
| |
| W H1 0 Writ Header 1 (Language Defs)
| |
| W H2 0 Writ Header 2 (Window Defs)
| |
| W A 0 Writ Phrase A
| |
| W B 4 Writ Phrase B
| |
| V 12 Vorbis 0-12
| |
| W A 15 Writ Phrase A
| |
| W C 19 Writ Phrase C
| |
| W D 23 Writ Phrase D
| |
| V 26 Vorbis 13-26
| |
| W E 26 Writ Phrase E
| |
| W D 38 Writ Phrase D
| |
| V 40 Vorbis 27-40
| |
| W F 41 Writ Phrase F
| |
| W D 53 Writ Phrase D (EOF)
| |
| V 54 Vorbis 41-54
| |
| V 69 Vorbis 55-69 (EOF)
| |
| | |
| </pre>
| |
| | |
| Player begins decoding at beginning of stream. It reads the BOS pages
| |
| for both codecs, then receives a non-BOS page. At this point it knows
| |
| that it has two bitstreams to decode and has resolved that one is Writ
| |
| and the other Vorbis. It'll continue processing the headers for both.
| |
| | |
| Next it's going to find two Writ packets (phrases A and B) and toss them
| |
| into libwrit. Then it'll get to the first Vorbis data page. It now has
| |
| data from both bitstreams, and it knows (from the granulepos on the
| |
| Vorbis page) that it has enough data to run until 12. If there were any
| |
| Writ packets before 12 they would have appeared first.
| |
| | |
| At around granule 9 the listener seeks forward to 24. This will cause a
| |
| rapid seek through the file to find the first page with a granulepos
| |
| greater than the seek position and begin decoding at that point.
| |
| | |
| It'll find a Vorbis packet containing 13-26 (and not use 13-23) and Writ
| |
| phrase E. Again, having data from both bitstreams it can begin playing.
| |
| D would normally appear at granule 24 but is not known about yet. The
| |
| player knows that this is only enough to decode until 26 so, knowing
| |
| enough to prebuffer, continues reading the file as it plays the media.
| |
| | |
| The next packet it finds is Writ phrase D, and passing it to libwrit, is
| |
| found that the current granulepos is within the duration. It is thus
| |
| displayed immediatly, as it's prebuffered, without waiting for
| |
| granulepos 38. It'll keep reading (because the maximum decoded Vorbis
| |
| is still 26) and find a Vorbis packet with a 40 granulepos.
| |
| | |
| As it nears 38 it'll read the file again and find Writ phrase F, which
| |
| takes it out to 41. Vorbis only goes until 40, so it'll have to keep
| |
| reading until the next Vorbis packet.
| |
| | |
| Next it'll find Writ phrase D, which will be ignored by libwrit because
| |
| phrase D is already known (matches start granule of earlier D), and the
| |
| EOF on that page marks this as the last of the Writ stream.
| |
| | |
| It'll continue reading for the next Vorbis data and find the packet
| |
| for granule 54, followed by the Vorbis packet for granule 69. With that
| |
| it's EOS, EOF, finished.
| |
| | |
| This is of course a simplistic example, Writ and Vorbis will rarely have
| |
| granules which equal the same amount of time. Each bitstream has its'
| |
| own granule -> time mapping which is calculated when muxing concurrent
| |
| bitstreams within the file. So if there are 44100 Vorbis granules
| |
| per second and only 4 Writ granules per second, pages would be ordered
| |
| as W25 V297892 W31 V385932 W39 W41 V463057 etc. The logic used in the
| |
| above example works after this granule-time mapping is calculated.
| |
| | |
| | |
| == Ongoing Discussion ==
| |
| | |
| * How does this get "encoded" and "merged"?
| |
| ** <purple_haese> The muxing rule is pages are arranged in ascending order by the timestamp that is represented by their granulepos.
| |
| | |
| * For what reason is the 0x00 and 0xFF byte at the beginning of header and data packet respectively?
| |
| ** <xiphmont> If, after a seek, I hand your codec a header packet, what does the codec do?
| |
| ** <xiphmont> It does *nothing*. If I haven't told it to reset, the header is not data, *it must ignore the header*.
| |
| ** <xiphmont> this eliminates a huge raft of special cases in Ogg seeking.
| |
| | |
| | |
| | |
| == "The Old Way" ==
| |
| <B>The section below is for historical purposes only!</B>
| |
| <pre>
| |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| |
| 2003/08/17
| |
| In a lengthy discussion with Monty and Derf the decidion to change the
| |
| behavior of discontinuous bitstreams in Ogg, or rather, extend the
| |
| current Ogg specification to handle discontinuous codecs, was made.
| |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| |
| </pre>
| |
| | |
| The Ogg granulepos of each page is equal to the expiration of the text,
| |
| packets are ordered by expiration time and may overlap. So, at or before
| |
| text A is to be displayed, the following sequence is included:
| |
| | |
| <pre>
| |
| Physical Text Text Text
| |
| Location Packet Start Expire (text expire = page granulepos)
| |
| ---------------------------------------
| |
| 00 B 04 14
| |
| 00 D 19 23
| |
| 00 C 09 24
| |
| 00 F 27 34
| |
| 00 E 26 37
| |
| 00 G 35 47
| |
| 00 H 42 54
| |
| 00 A 00 59
| |
| 51 I 51 66
| |
| </pre>
| |
| So B, D, C, F, E, G, and H are all defined before A, building a FIFO (first
| |
| in first out) buffer in the player. Encoders should limit the extend of this
| |
| behavior to reduce nessesary buffer size on the player side by prematurly
| |
| expiring captions and recreating them periodically.
| |
| | |
| The screen should not be updated with the new captions until they've all
| |
| been processed to prevent "flicker". New caption data to the same position
| |
| will scroll the previous data upwards with no line breaks seperating them
| |
| (unless present in text).
| |
| [http://www.gsyb.com压力表]
| |
| [http://www.shop263.com/i-413/938.htm 灌装机]
| |
| [http://www.shop263.com/i-413/939.htm 光触媒材料]
| |
| [http://www.shop263.com/i-413/940.htm 光固化地坪]
| |
| [http://www.shop263.com/i-413/941.htm 光固化涂料用树脂]
| |
| [http://www.shop263.com/i-413/942.htm 光缆集中监测系统]
| |
| [http://www.shop263.com/i-413/943.htm 光膜]
| |
| [http://www.shop263.com/i-413/944.htm 光学材料制造]
| |
| [http://www.shop263.com/i-413/945.htm 光学眼镜毛坯]
| |
| [http://www.shop263.com/i-413/946.htm 光阻剂]
| |
| [http://www.shop263.com/i-413/947.htm 广播级摄像机锂离子电池]
| |
| [http://www.shop263.com/i-413/948.htm 广告袋]
| |
| [http://www.shop263.com/i-413/949.htm 广告赠品]
| |
| [http://www.shop263.com/i-413/950.htm 规整波纹填料]
| |
| [http://www.shop263.com/i-413/951.htm 硅胶]
| |
| [http://www.shop263.com/i-413/952.htm 硅胶按键]
| |
| [http://www.shop263.com/i-413/953.htm 硅胶小包装]
| |
| [http://www.shop263.com/i-413/954.htm 硅凝胶]
| |
| [http://www.shop263.com/i-413/955.htm 硅酸锆]
| |
| [http://www.shop263.com/i-413/956.htm 硅酸盐水泥]
| |
| [http://www.shop263.com/i-413/957.htm 硅酮胶包装瓶]
| |
| [http://www.shop263.com/i-413/958.htm 硅烷交联聚乙烯电缆绝缘料耐环]
| |
| [http://www.shop263.com/i-413/959.htm 硅微粉]
| |
| [http://www.shop263.com/i-413/960.htm 国际国内贸易]
| |
| [http://www.shop263.com/i-413/961.htm 过滤布]
| |
| [http://www.shop263.com/i-413/962.htm 过滤稀土瓷砂]
| |
| [http://www.shop263.com/i-413/963.htm 海水电解不溶性氧化物电极]
| |
| [http://www.shop263.com/i-413/964.htm 含油尼龙]
| |
| [http://www.shop263.com/i-413/965.htm 航空煤油]
| |
| [http://www.shop263.com/i-413/966.htm 航空器材]
| |
| [http://www.shop263.com/i-413/967.htm 航空润滑油]
| |
| [http://www.shop263.com/i-413/968.htm 合成革]
| |
| [http://www.shop263.com/i-413/969.htm 合成树脂]
| |
| [http://www.shop263.com/i-413/970.htm 合成型热传导液]
| |
| [http://www.shop263.com/i-413/971.htm 黑白全色胶卷]
| |
| [http://www.shop263.com/i-413/972.htm 黑白全色胶片]
| |
| [http://www.shop263.com/i-413/973.htm 黑色抗静电塑料原料]
| |
| [http://www.shop263.com/i-413/974.htm 红外防伪发光材料]
| |
| [http://www.shop263.com/i-413/975.htm 红外激光探测板]
| |
| [http://www.shop263.com/i-413/976.htm 糊用聚氯乙烯树脂]
| |
| [http://www.shop263.com/i-413/977.htm 护耳罩]
| |
| [http://www.shop263.com/i-413/978.htm 护罩盖]
| |
| [http://www.shop263.com/i-413/979.htm 花钵]
| |
| [http://www.shop263.com/i-413/980.htm 花岗岩板材]
| |
| [http://www.shop263.com/i-413/981.htm 花坛]
| |
| [http://www.shop263.com/i-413/982.htm 滑石粉]
| |
| [http://www.shop263.com/i-413/983.htm 化肥]
| |
| [http://www.shop263.com/i-413/984.htm 化工填料]
| |
| [http://www.shop263.com/i-413/985.htm 化合物纳米粉末]
| |
| [http://www.shop263.com/i-413/986.htm 化纤]
| |
| [http://www.shop263.com/i-413/987.htm 化纤绸]
| |
| [http://www.shop263.com/i-413/988.htm 化纤面料]
| |
| [http://www.shop263.com/i-413/989.htm 化学矿]
| |
| [http://www.shop263.com/i-413/990.htm 化学试剂]
| |
| [http://www.shop263.com/i-413/991.htm 化学纤维丝网]
| |
| [http://www.shop263.com/i-413/992.htm 化学纤维油剂]
| |
| [http://www.shop263.com/i-413/993.htm 化油器清洗剂]
| |
| [http://www.shop263.com/i-413/994.htm 化妆品]
| |
| [http://www.shop263.com/i-413/995.htm 化妆品玻璃]
| |
| [http://www.shop263.com/i-413/996.htm 化妆品工艺]
| |
| [http://www.shop263.com/i-413/997.htm 化妆品瓶]
| |
| [http://www.shop263.com/i-413/998.htm 化妆品容器]
| |
| [http://www.shop263.com/i-413/999.htm 化妆品添加剂]
| |
| [http://www.shop263.com/i-413/1000.htm 环保大芯板]
| |
| [http://www.shop263.com/i-413/1001.htm 环保垃圾桶]
| |
| [http://www.shop263.com/i-413/1001.htm 环保滤料]
| |
| [http://www.shop263.com/i-413/1002.htm 环保乳胶漆]
| |
| [http://www.shop263.com/i-413/1003.htm 环境工程]
| |
| [http://www.shop263.com/i-413/1004.htm 环氧胶系列]
| |
| [http://www.shop263.com/i-413/1005.htm 环氧树脂]
| |
| [http://www.shop263.com/i-413/1006.htm 环氧系列固化稀释剂]
| |
| [http://www.shop263.com/i-413/1007.htm 黄蜡]
| |
| [http://www.shop263.com/i-413/1008.htm 黄抛光膏]
| |
| [http://www.shop263.com/i-413/1009.htm 磺化酞菁钴]
| |
| [http://www.shop263.com/i-413/1010.htm 回位装置]
| |
| [http://www.shop263.com/i-413/1011.htm 混苯]
| |
| [http://www.shop263.com/i-413/1012.htm 混合气体]
| |
| [http://www.shop263.com/i-413/1013.htm 混凝土防水屏障]
| |
| [http://www.shop263.com/i-413/1014.htm 混凝土膨剂]
| |
| [http://www.shop263.com/i-413/1015.htm 火柴]
| |
| [http://www.shop263.com/i-413/1016.htm 机械护罩]
| |
| [http://www.shop263.com/i-413/1017.htm 机械油]
| |
| [http://www.shop263.com/i-413/1018.htm 机械油封]
| |
| [http://www.shop263.com/i-413/1019.htm 机制甘油香皂]
| |
| [http://www.shop263.com/i-413/1020.htm 机制透明皂]
| |
| [http://www.shop263.com/i-413/1021.htm 激光照排胶片冲洗套药]
| |
| [http://www.shop263.com/i-413/1022.htm 集装桶]
| |
| [http://www.shop263.com/i-413/1023.htm 加氢阻垢剂]
| |
| [http://www.shop263.com/i-413/1024.htm 夹层玻璃]
| |
| [http://www.shop263.com/i-413/1025.htm 家庭急救用品]
| |
| [http://www.shop263.com/i-413/1026.htm 甲苯]
| |
| [http://www.shop263.com/i-413/1027.htm 甲基苯三唑]
| |
| [http://www.shop263.com/i-413/1028.htm 甲基丙烯酸甲酯]
| |
| [http://www.shop263.com/i-413/1029.htm 甲基儿茶酚]
| |
| [http://www.shop263.com/i-413/1030.htm 甲基二乙醇胺]
| |
| [http://www.shop263.com/i-413/1031.htm 甲基腈]
| |
| [http://www.shop263.com/i-413/1032.htm 甲基萘]
| |
| [http://www.shop263.com/i-413/1033.htm 甲基异丁基甲酮]
| |
| [http://www.shop263.com/i-413/1034.htm 甲醚化六羟甲基三聚氰胺树脂]
| |
| [http://www.shop263.com/i-413/1035.htm 甲酸]
| |
| [http://www.shop263.com/i-413/1036.htm 减速机专用脂]
| |
| [http://www.shop263.com/i-413/1037.htm 剪切平直型]
| |
| [http://www.shop263.com/i-413/1038.htm 碱锌光亮剂]
| |
| [http://www.shop263.com/i-413/1039.htm 碱性锌锰]
| |
| [http://www.shop263.com/i-413/1040.htm 碱性锌锰干电池]
| |
| [http://www.shop263.com/i-413/1041.htm 建材]
| |
| [http://www.shop263.com/i-413/1042.htm 建筑材料]
| |
| [http://www.shop263.com/i-413/1043.htm 建筑钢材]
| |
| [http://www.shop263.com/i-413/1044.htm 建筑模板]
| |
| [http://www.shop263.com/i-413/1045.htm 建筑模板生产车间]
| |
| [http://www.shop263.com/i-413/1046.htm 健身器材]
| |
| [http://www.shop263.com/i-413/1047.htm 键盘内衬]
| |
| [http://www.shop263.com/i-413/1048.htm 胶辊胶]
| |
| [http://www.shop263.com/i-413/1049.htm 胶合板模板平铺施工]
| |
| [http://www.shop263.com/i-413/1050.htm 胶木粉]
| |
| [http://www.shop263.com/i-413/1051.htm 焦宝石]
| |
| [http://www.shop263.com/i-413/1052.htm 焦亚硫酸钠]
| |
| [http://www.shop263.com/i-413/1053.htm 巾包装袋]
| |
| [http://www.shop263.com/i-413/1054.htm 金锭]
| |
| [http://www.shop263.com/i-413/1055.htm 金漆镶嵌]
| |
| [http://www.shop263.com/i-413/1056.htm 金属表面处理剂]
| |
| [http://www.shop263.com/i-413/1057.htm 金属加工用油]
| |
| [http://www.shop263.com/i-413/1058.htm 金属加工油]
| |
| [http://www.shop263.com/i-413/1059.htm 金属纳米粉末]
| |
| [http://www.shop263.com/i-413/1060.htm 锦纶6聚合]
| |
| [http://www.shop263.com/i-413/1061.htm 锦纶丝]
| |
| [http://www.shop263.com/i-413/1062.htm 锦纶线]
| |
| [http://www.shop263.com/i-413/1063.htm 精甲醇]
| |
| [http://www.shop263.com/i-413/1064.htm 精密仪器]
| |
| [http://www.shop263.com/i-413/1065.htm 精密铸造]
| |
| [http://www.shop263.com/i-413/1066.htm 精品搪瓷]
| |
| [http://www.shop263.com/i-413/1067.htm 精塑制品]
| |
| [http://www.shop263.com/i-413/1068.htm 精细化工]
| |
| [http://www.shop263.com/i-413/1069.htm 精制盐]
| |
| [http://www.shop263.com/i-413/1070.htm 警示带]
| |
| [http://www.shop263.com/i-413/1071.htm 净化设备]
| |
| [http://www.shop263.com/i-413/1072.htm 镜片胶]
| |
| [http://www.shop263.com/i-413/1073.htm 镜铜纸]
| |
| [http://www.shop263.com/i-413/1074.htm 酒精消毒湿巾]
| |
| [http://www.shop263.com/i-413/1075.htm 局部镀铝膜]
| |
| [http://www.shop263.com/i-413/1076.htm 矩形镀铜碳棒]
| |
| [http://www.shop263.com/i-413/1077.htm 矩形气刨炭棒]
| |
| [http://www.shop263.com/i-413/1078.htm 聚氨脂防水涂料]
| |
| [http://www.shop263.com/i-413/1079.htm 聚氨酯]
| |
| [http://www.shop263.com/i-413/1080.htm 聚氨酯树脂]
| |
| [http://www.shop263.com/i-413/1081.htm 聚胺脂泡沫填缝剂]
| |
| [http://www.shop263.com/i-413/1082.htm 聚丙烯]
| |
| [http://www.shop263.com/i-413/1083.htm 聚丙烯捆扎绳]
| |
| [http://www.shop263.com/i-413/1084.htm 聚丙烯填料]
| |
| [http://www.shop263.com/i-413/1085.htm 聚合硫酸铁]
| |
| [http://www.shop263.com/i-413/1086.htm 聚合物锂离子电池]
| |
| [http://www.shop263.com/i-413/1087.htm 聚氯乙烯复合管]
| |
| [http://www.shop263.com/i-413/1088.htm 聚氯乙烯加工助剂]
| |
| [http://www.shop263.com/i-413/1089.htm 聚氯乙烯排水管]
| |
| [http://www.shop263.com/i-413/1090.htm 聚醚多元醇]
| |
| [http://www.shop263.com/i-413/1091.htm 聚四氟乙烯]
| |
| [http://www.shop263.com/i-413/1092.htm 聚四氟乙烯密封圈]
| |
| [http://www.shop263.com/i-413/1093.htm 聚四氟乙烯制品]
| |
| [http://www.shop263.com/i-413/1094.htm 聚烯烃复合纤维]
| |
| [http://www.shop263.com/i-413/1095.htm 聚乙二醇]
| |
| [http://www.shop263.com/i-413/1096.htm 聚乙烯]
| |
| [http://www.shop263.com/i-413/1097.htm 聚乙烯醇]
| |
| [http://www.shop263.com/i-413/1098.htm 聚乙烯工农用薄膜]
| |
| [http://www.shop263.com/i-413/1099.htm 聚乙烯购物袋]
| |
| [http://www.shop263.com/i-413/1100.htm 聚酯薄膜]
| |
| [http://www.shop263.com/i-413/1101.htm 聚酯切片]
| |
| [http://www.shop263.com/i-413/1102.htm 聚酯芯输送带]
| |
| [http://www.shop263.com/i-413/1103.htm 卷装背心]
| |
| [http://www.shop263.com/i-413/1104.htm 卷装食品保鲜袋]
| |
| [http://www.shop263.com/i-413/1105.htm 绝缘护套]
| |
| [http://www.shop263.com/i-413/1106.htm 绝缘料聚丙烯管材专用料]
| |
| [http://www.shop263.com/i-413/1107.htm 军用高分子材料]
| |
| [http://www.shop263.com/i-413/1108.htm 卡扣线系列产品]
| |
| [http://www.shop263.com/i-413/1109.htm 聚晶石]
| |
| [http://www.shop263.com/i-413/1110.htm 开缸剂]
| |
| [http://www.shop263.com/i-413/1111.htm 开水炉]
| |
| [http://www.shop263.com/i-413/1112.htm 康复理疗器械]
| |
| [http://www.shop263.com/i-413/1113.htm 抗静电高分子材料]
| |
| [http://www.shop263.com/i-413/1114.htm 抗磨液压油]
| |
| [http://www.shop263.com/i-413/1115.htm 空气除尘滤袋]
| |
| [http://www.shop263.com/i-413/1116.htm 空气清新剂]
| |
| [http://www.shop263.com/i-413/1117.htm 苦味酸]
| |
| [http://www.shop263.com/i-413/1118.htm 矿物型导热油]
| |
| [http://www.shop263.com/i-413/1119.htm 矿渣硅酸盐水泥]
| |
| [http://www.shop263.com/i-413/1120.htm 垃圾袋]
| |
| [http://www.shop263.com/i-413/1121.htm 拉挤树脂]
| |
| [http://www.shop263.com/i-413/1122.htm 拉链片]
| |
| [http://www.shop263.com/i-413/1123.htm 蜡烛]
| |
| [http://www.shop263.com/i-413/1124.htm 蜡烛台玻璃]
| |
| [http://www.shop263.com/i-413/1125.htm 老弱病残护理商品]
| |
| [http://www.shop263.com/i-413/1126.htm 雷射]
| |
| [http://www.shop263.com/i-413/1127.htm 雷射雕刻按键]
| |
| [http://www.shop263.com/i-413/1128.htm 镭射膜] | |
| [http://www.shop263.com/i-413/1129.htm 镭射转印膜]
| |
| [http://www.shop263.com/i-413/1130.htm 冷拔钢丝型]
| |
| [http://www.shop263.com/i-413/1131.htm 冷却塔]
| |
| [http://www.shop263.com/i-413/1132.htm 冷热水管]
| |
| [http://www.shop263.com/i-413/1133.htm 离子交换树脂]
| |
| [http://www.shop263.com/i-413/1134.htm 礼花弹]
| |
| [http://www.shop263.com/i-413/1135.htm 礼品玻璃]
| |
| [http://www.shop263.com/i-413/1136.htm 锂离子电池充电器]
| |
| [http://www.shop263.com/i-413/1137.htm 沥青]
| |
| [http://www.shop263.com/i-413/1138.htm 连接气刨炭棒]
| |
| [http://www.shop263.com/i-413/1139.htm 连接式镀铜碳棒]
| |
| [http://www.shop263.com/i-413/1140.htm 连卷袋]
| |
| [http://www.shop263.com/i-413/1141.htm 连体豪华玻璃洗手盆]
| |
| [http://www.shop263.com/i-413/1142.htm 连铸保护渣]
| |
| [http://www.shop263.com/i-413/1143.htm 炼油]
| |
| [http://www.shop263.com/i-413/1144.htm 磷矿粉]
| |
| [http://www.shop263.com/i-413/1145.htm 磷矿石]
| |
| [http://www.shop263.com/i-413/1146.htm 磷酸二氢铝]
| |
| [http://www.shop263.com/i-413/1147.htm 磷酸二氢镁]
| |
| [http://www.shop263.com/i-413/1148.htm 磷酸氢镁]
| |
| [http://www.shop263.com/i-413/1149.htm 磷酸盐]
| |
| [http://www.shop263.com/i-413/1150.htm 流态化石灰粉]
| |
| [http://www.shop263.com/i-413/1151.htm 硫磺块]
| |
| [http://www.shop263.com/i-413/1152.htm 硫酸锆]
| |
| [http://www.shop263.com/i-413/1153.htm 硫酸铅]
| |
| [http://www.shop263.com/i-413/1154.htm 硫酸氧锆]
| |
| [http://www.shop263.com/i-413/1155.htm 柳编制品]
| |
| [http://www.shop263.com/i-413/1156.htm 滤紫外线石英管]
| |
| [http://www.shop263.com/i-413/1157.htm 铝箔封口垫片]
| |
| [http://www.shop263.com/i-413/1158.htm 铝箔食品容器]
| |
| [http://www.shop263.com/i-413/1159.htm 铝材光亮剂]
| |
| [http://www.shop263.com/i-413/1160.htm 铝合金氧化]
| |
| [http://www.shop263.com/i-413/1161.htm 铝用碳素]
| |
| [http://www.shop263.com/i-413/1162.htm 绿色环保型增塑剂]
| |
| [http://www.shop263.com/i-413/1163.htm 氯化铵]
| |
| [http://www.shop263.com/i-413/1164.htm 氯化钾]
| |
| [http://www.shop263.com/i-413/1165.htm 氯化聚乙烯卷材]
| |
| [http://www.shop263.com/i-413/1166.htm 氯化镁]
| |
| [http://www.shop263.com/i-413/1167.htm 氯化石蜡]
| |
| [http://www.shop263.com/i-413/1168.htm 氯化石蜡油清]
| |
| [http://www.shop263.com/i-413/1169.htm 氯碱工业隔膜法]
| |
| [http://www.shop263.com/i-413/1170.htm 氯碱化工]
| |
| [http://www.shop263.com/i-413/1171.htm 氯霉素原料药]
| |
| [http://www.shop263.com/i-413/1172.htm 氯霉素中间体]
| |
| [http://www.shop263.com/i-413/1173.htm 氯酸盐工业用金属阳极]
| |
| [http://www.shop263.com/i-413/1174.htm 箩筐]
| |
| [http://www.shop263.com/i-413/1175.htm 螺栓松动剂]
| |
| [http://www.shop263.com/i-413/1176.htm 埋弧焊用烧结焊剂]
| |
| [http://www.shop263.com/i-413/1177.htm 梅花点波纹填料]
| |
| [http://www.shop263.com/i-413/1178.htm 煤焦油瓷漆]
| |
| [http://www.shop263.com/i-413/1179.htm 煤炭]
| |
| [http://www.shop263.com/i-413/1180.htm 煤油]
| |
| [http://www.shop263.com/i-413/1181.htm 美容面罩]
| |
| [http://www.shop263.com/i-413/1182.htm 美容泡泡沐浴露]
| |
| [http://www.shop263.com/i-413/1183.htm 美容纸]
| |
| [http://www.shop263.com/i-413/1184.htm 镁基脱硫剂]
| |
| [http://www.shop263.com/i-413/1185.htm 密封材料]
| |
| [http://www.shop263.com/i-413/1186.htm 密封段]
| |
| [http://www.shop263.com/i-413/1187.htm 密封件]
| |
| [http://www.shop263.com/i-413/1188.htm 密封胶溶剂]
| |
| [http://www.shop263.com/i-413/1189.htm 密封胶条]
| |
| [http://www.shop263.com/i-413/1190.htm 密压板]
| |
| [http://www.shop263.com/i-413/1191.htm 棉麻固色油]
| |
| [http://www.shop263.com/i-413/1192.htm 免洗型助焊剂]
| |
| [http://www.shop263.com/i-413/1193.htm 模具标准件加工]
| |
| [http://www.shop263.com/i-413/1194.htm 模具硅胶]
| |
| [http://www.shop263.com/i-413/1195.htm 模具注塑]
| |
| [http://www.shop263.com/i-413/1196.htm 模内标签]
| |
| [http://www.shop263.com/i-413/1197.htm 模内转印]
| |
| [http://www.shop263.com/i-413/1198.htm 模造纸]
| |
| [http://www.shop263.com/i-413/1199.htm 摩托车挡风玻璃]
| |
| [http://www.shop263.com/i-413/1200.htm 磨擦试验机]
| |
| [http://www.shop263.com/i-413/1201.htm 木材表面转印膜]
| |
| [http://www.shop263.com/i-413/1202.htm 木钙]
| |
| [http://www.shop263.com/i-413/1203.htm 木钠]
| |
| [http://www.shop263.com/i-413/1204.htm 木糖]
| |
| [http://www.shop263.com/i-413/1205.htm 木糖醇]
| |
| [http://www.shop263.com/i-413/1206.htm 木质素磺酸钙]
| |
| [http://www.shop263.com/i-413/1207.htm 内燃机油]
| |
| [http://www.shop263.com/i-413/1208.htm 高效脱硫剂]
| |
| [http://www.shop263.com/i-413/1209.htm 高效脱硫脱碳剂]
| |
| [http://www.shop263.com/i-413/1210.htm 高效脱漆剂]
| |
| [http://www.shop263.com/i-413/1211.htm 高效阻燃剂]
| |
| [http://www.shop263.com/i-413/1212.htm 复合橡胶分散剂]
| |
| [http://www.shop263.com/i-413/1213.htm 锆氟酸铵]
| |
| [http://www.shop263.com/i-413/1214.htm 锆氟酸钾]
| |
| [http://www.shop263.com/i-413/1215.htm 锆刚玉]
| |
| [http://www.shop263.com/i-413/1216.htm 锆英粉]
| |
| [http://www.shop263.com/i-413/1217.htm 锆英砂]
| |
| [http://www.shop263.com/i-413/1218.htm 隔热耐烧蚀涂料]
| |
| [http://www.shop263.com/i-413/1219.htm 各种溶剂]
| |
| [http://www.shop263.com/i-413/1220.htm 各种卫生纸]
| |
| [http://www.shop263.com/i-413/1221.htm 各种橡胶杂件]
| |
| [http://www.shop263.com/i-413/1222.htm 各种粘结剂]
| |
| [http://www.shop263.com/i-413/1223.htm 铬矿]
| |
| [http://www.shop263.com/i-413/1224.htm 给排水管件管材]
| |
| [http://www.shop263.com/i-413/1225.htm 给水管材]
| |
| [http://www.shop263.com/i-413/1226.htm 工程塑料包装]
| |
| [http://www.shop263.com/i-413/1227.htm 工程橡塑]
| |
| [http://www.shop263.com/i-413/1228.htm 工具箱]
| |
| [http://www.shop263.com/i-413/1229.htm 工矿橡胶配件]
| |
| [http://www.shop263.com/i-413/1230.htm 工业苯]
| |
| [http://www.shop263.com/i-413/1231.htm 工业齿轮油]
| |
| [http://www.shop263.com/i-413/1232.htm 工业缝包线]
| |
| [http://www.shop263.com/i-413/1233.htm 设备清洗]
| |
| [http://www.shop263.com/i-413/1234.htm 工业级羊毛脂]
| |
| [http://www.shop263.com/i-413/1235.htm 工业甲醛]
| |
| [http://www.shop263.com/i-413/1236.htm 工业硫酸]
| |
| [http://www.shop263.com/i-413/1237.htm 工业清洗剂]
| |
| [http://www.shop263.com/i-413/1238.htm 工业热风炉]
| |
| [http://www.shop263.com/i-413/1239.htm 工业润滑油]
| |
| [http://www.shop263.com/i-413/1240.htm 工业碳酸锂]
| |
| [http://www.shop263.com/i-413/1241.htm 工业陶瓷]
| |
| [http://www.shop263.com/i-413/1242.htm 工业盐]
| |
| [http://www.shop263.com/i-413/1243.htm 工业用润滑油]
| |
| [http://www.shop263.com/i-413/1244.htm 工业用塑料薄膜]
| |
| [http://www.shop263.com/i-413/1245.htm 工业用油]
| |
| [http://www.shop263.com/i-413/1246.htm 工艺玻璃]
| |
| [http://www.shop263.com/i-413/1247.htm 工艺雕刻用牛角]
| |
| [http://www.shop263.com/i-413/1248.htm 工艺品树脂]
| |
| [http://www.shop263.com/i-413/1249.htm 健康监测仪器]
| |