正在显示
20 个修改的文件
包含
366 行增加
和
274 行删除
| @@ -116,6 +116,8 @@ | @@ -116,6 +116,8 @@ | ||
| 116 | 3C82802C1BAFF8CC004A1794 /* srs_kafka_stack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C82802A1BAFF8CC004A1794 /* srs_kafka_stack.cpp */; }; | 116 | 3C82802C1BAFF8CC004A1794 /* srs_kafka_stack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C82802A1BAFF8CC004A1794 /* srs_kafka_stack.cpp */; }; |
| 117 | 3C8CE01E1C3F482100548CC6 /* srs_app_hourglass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C8CE01D1C3F482100548CC6 /* srs_app_hourglass.cpp */; }; | 117 | 3C8CE01E1C3F482100548CC6 /* srs_app_hourglass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C8CE01D1C3F482100548CC6 /* srs_app_hourglass.cpp */; }; |
| 118 | 3CA432A81E3F46DD001DA0C6 /* srs_kernel_io.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3CA432A61E3F46DD001DA0C6 /* srs_kernel_io.cpp */; }; | 118 | 3CA432A81E3F46DD001DA0C6 /* srs_kernel_io.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3CA432A61E3F46DD001DA0C6 /* srs_kernel_io.cpp */; }; |
| 119 | + 3CA432AB1E40AEBC001DA0C6 /* Makefile in Sources */ = {isa = PBXBuildFile; fileRef = 3CA432A91E40AEBC001DA0C6 /* Makefile */; }; | ||
| 120 | + 3CA432AC1E40AEBC001DA0C6 /* srs_ingest_mp4.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CA432AA1E40AEBC001DA0C6 /* srs_ingest_mp4.c */; }; | ||
| 119 | 3CB25C2A1BB269FD00C97A63 /* jmp_sp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3CB25C291BB269FD00C97A63 /* jmp_sp.cpp */; }; | 121 | 3CB25C2A1BB269FD00C97A63 /* jmp_sp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3CB25C291BB269FD00C97A63 /* jmp_sp.cpp */; }; |
| 120 | 3CC52DD81ACE4023006FEB01 /* srs_utest_amf0.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3CC52DCA1ACE4023006FEB01 /* srs_utest_amf0.cpp */; }; | 122 | 3CC52DD81ACE4023006FEB01 /* srs_utest_amf0.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3CC52DCA1ACE4023006FEB01 /* srs_utest_amf0.cpp */; }; |
| 121 | 3CC52DD91ACE4023006FEB01 /* srs_utest_config.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3CC52DCC1ACE4023006FEB01 /* srs_utest_config.cpp */; }; | 123 | 3CC52DD91ACE4023006FEB01 /* srs_utest_config.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3CC52DCC1ACE4023006FEB01 /* srs_utest_config.cpp */; }; |
| @@ -406,6 +408,8 @@ | @@ -406,6 +408,8 @@ | ||
| 406 | 3C8CE01D1C3F482100548CC6 /* srs_app_hourglass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_app_hourglass.cpp; path = ../../../src/app/srs_app_hourglass.cpp; sourceTree = "<group>"; }; | 408 | 3C8CE01D1C3F482100548CC6 /* srs_app_hourglass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_app_hourglass.cpp; path = ../../../src/app/srs_app_hourglass.cpp; sourceTree = "<group>"; }; |
| 407 | 3CA432A61E3F46DD001DA0C6 /* srs_kernel_io.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_kernel_io.cpp; path = ../../../src/kernel/srs_kernel_io.cpp; sourceTree = "<group>"; }; | 409 | 3CA432A61E3F46DD001DA0C6 /* srs_kernel_io.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_kernel_io.cpp; path = ../../../src/kernel/srs_kernel_io.cpp; sourceTree = "<group>"; }; |
| 408 | 3CA432A71E3F46DD001DA0C6 /* srs_kernel_io.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_kernel_io.hpp; path = ../../../src/kernel/srs_kernel_io.hpp; sourceTree = "<group>"; }; | 410 | 3CA432A71E3F46DD001DA0C6 /* srs_kernel_io.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_kernel_io.hpp; path = ../../../src/kernel/srs_kernel_io.hpp; sourceTree = "<group>"; }; |
| 411 | + 3CA432A91E40AEBC001DA0C6 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; name = Makefile; path = ../../../research/librtmp/Makefile; sourceTree = "<group>"; }; | ||
| 412 | + 3CA432AA1E40AEBC001DA0C6 /* srs_ingest_mp4.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = srs_ingest_mp4.c; path = ../../../research/librtmp/srs_ingest_mp4.c; sourceTree = "<group>"; }; | ||
| 409 | 3CB25C281BB2596300C97A63 /* setup_variables.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = setup_variables.sh; path = ../../../auto/setup_variables.sh; sourceTree = "<group>"; }; | 413 | 3CB25C281BB2596300C97A63 /* setup_variables.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = setup_variables.sh; path = ../../../auto/setup_variables.sh; sourceTree = "<group>"; }; |
| 410 | 3CB25C291BB269FD00C97A63 /* jmp_sp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jmp_sp.cpp; path = ../../../research/arm/jmp_sp.cpp; sourceTree = "<group>"; }; | 414 | 3CB25C291BB269FD00C97A63 /* jmp_sp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jmp_sp.cpp; path = ../../../research/arm/jmp_sp.cpp; sourceTree = "<group>"; }; |
| 411 | 3CC52DCA1ACE4023006FEB01 /* srs_utest_amf0.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_utest_amf0.cpp; path = ../../src/utest/srs_utest_amf0.cpp; sourceTree = "<group>"; }; | 415 | 3CC52DCA1ACE4023006FEB01 /* srs_utest_amf0.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_utest_amf0.cpp; path = ../../src/utest/srs_utest_amf0.cpp; sourceTree = "<group>"; }; |
| @@ -820,6 +824,7 @@ | @@ -820,6 +824,7 @@ | ||
| 820 | isa = PBXGroup; | 824 | isa = PBXGroup; |
| 821 | children = ( | 825 | children = ( |
| 822 | 3CB25C291BB269FD00C97A63 /* jmp_sp.cpp */, | 826 | 3CB25C291BB269FD00C97A63 /* jmp_sp.cpp */, |
| 827 | + 3CA432A91E40AEBC001DA0C6 /* Makefile */, | ||
| 823 | 3C24ECCB1C3B824800460622 /* memory.error.notcmalloc.cpp */, | 828 | 3C24ECCB1C3B824800460622 /* memory.error.notcmalloc.cpp */, |
| 824 | 3C24ECCC1C3B824800460622 /* memory.error.tcmalloc.cpp */, | 829 | 3C24ECCC1C3B824800460622 /* memory.error.tcmalloc.cpp */, |
| 825 | 3C663F021AB0155100286D8B /* srs_aac_raw_publish.c */, | 830 | 3C663F021AB0155100286D8B /* srs_aac_raw_publish.c */, |
| @@ -830,6 +835,7 @@ | @@ -830,6 +835,7 @@ | ||
| 830 | 3C663F071AB0155100286D8B /* srs_flv_parser.c */, | 835 | 3C663F071AB0155100286D8B /* srs_flv_parser.c */, |
| 831 | 3C663F081AB0155100286D8B /* srs_h264_raw_publish.c */, | 836 | 3C663F081AB0155100286D8B /* srs_h264_raw_publish.c */, |
| 832 | 3C663F091AB0155100286D8B /* srs_ingest_flv.c */, | 837 | 3C663F091AB0155100286D8B /* srs_ingest_flv.c */, |
| 838 | + 3CA432AA1E40AEBC001DA0C6 /* srs_ingest_mp4.c */, | ||
| 833 | 3C663F0A1AB0155100286D8B /* srs_ingest_rtmp.c */, | 839 | 3C663F0A1AB0155100286D8B /* srs_ingest_rtmp.c */, |
| 834 | 3C663F0B1AB0155100286D8B /* srs_play.c */, | 840 | 3C663F0B1AB0155100286D8B /* srs_play.c */, |
| 835 | 3C663F0C1AB0155100286D8B /* srs_publish.c */, | 841 | 3C663F0C1AB0155100286D8B /* srs_publish.c */, |
| @@ -1043,7 +1049,9 @@ | @@ -1043,7 +1049,9 @@ | ||
| 1043 | 3C689F9F1AB6AAC800C9CEEE /* sched.c in Sources */, | 1049 | 3C689F9F1AB6AAC800C9CEEE /* sched.c in Sources */, |
| 1044 | 3C1232061AAE812C00CE8F6C /* srs_main_server.cpp in Sources */, | 1050 | 3C1232061AAE812C00CE8F6C /* srs_main_server.cpp in Sources */, |
| 1045 | 3C1232281AAE814D00CE8F6C /* srs_kernel_mp3.cpp in Sources */, | 1051 | 3C1232281AAE814D00CE8F6C /* srs_kernel_mp3.cpp in Sources */, |
| 1052 | + 3CA432AC1E40AEBC001DA0C6 /* srs_ingest_mp4.c in Sources */, | ||
| 1046 | 3C24ECCE1C3B824800460622 /* memory.error.tcmalloc.cpp in Sources */, | 1053 | 3C24ECCE1C3B824800460622 /* memory.error.tcmalloc.cpp in Sources */, |
| 1054 | + 3CA432AB1E40AEBC001DA0C6 /* Makefile in Sources */, | ||
| 1047 | 3C1232B21AAE81D900CE8F6C /* srs_app_source.cpp in Sources */, | 1055 | 3C1232B21AAE81D900CE8F6C /* srs_app_source.cpp in Sources */, |
| 1048 | 3C1231F71AAE652D00CE8F6C /* srs_core_performance.cpp in Sources */, | 1056 | 3C1231F71AAE652D00CE8F6C /* srs_core_performance.cpp in Sources */, |
| 1049 | 3CC52DD81ACE4023006FEB01 /* srs_utest_amf0.cpp in Sources */, | 1057 | 3CC52DD81ACE4023006FEB01 /* srs_utest_amf0.cpp in Sources */, |
trunk/research/librtmp/.gitignore
0 → 100644
| 1 | +*.mp4 |
| @@ -8,7 +8,7 @@ else | @@ -8,7 +8,7 @@ else | ||
| 8 | objs/srs_ingest_flv objs/srs_ingest_rtmp objs/srs_detect_rtmp \ | 8 | objs/srs_ingest_flv objs/srs_ingest_rtmp objs/srs_detect_rtmp \ |
| 9 | objs/srs_bandwidth_check objs/srs_h264_raw_publish \ | 9 | objs/srs_bandwidth_check objs/srs_h264_raw_publish \ |
| 10 | objs/srs_audio_raw_publish objs/srs_aac_raw_publish \ | 10 | objs/srs_audio_raw_publish objs/srs_aac_raw_publish \ |
| 11 | - objs/srs_rtmp_dump | 11 | + objs/srs_rtmp_dump objs/srs_ingest_mp4 |
| 12 | endif | 12 | endif |
| 13 | 13 | ||
| 14 | .PHONY: default clean help ssl nossl | 14 | .PHONY: default clean help ssl nossl |
| @@ -30,6 +30,7 @@ help: | @@ -30,6 +30,7 @@ help: | ||
| 30 | @echo " srs_aac_raw_publish publish raw aac stream to SSR by srs-librtmp" | 30 | @echo " srs_aac_raw_publish publish raw aac stream to SSR by srs-librtmp" |
| 31 | @echo " srs_play play program using srs-librtmp" | 31 | @echo " srs_play play program using srs-librtmp" |
| 32 | @echo " srs_ingest_flv ingest flv file and publish to RTMP server." | 32 | @echo " srs_ingest_flv ingest flv file and publish to RTMP server." |
| 33 | + @echo " srs_ingest_mp4 ingest mp4 file and publish to RTMP server." | ||
| 33 | @echo " srs_ingest_rtmp ingest RTMP and publish to RTMP server." | 34 | @echo " srs_ingest_rtmp ingest RTMP and publish to RTMP server." |
| 34 | @echo " srs_detect_rtmp detect RTMP stream info." | 35 | @echo " srs_detect_rtmp detect RTMP stream info." |
| 35 | @echo " srs_bandwidth_check bandwidth check/test tool." | 36 | @echo " srs_bandwidth_check bandwidth check/test tool." |
| @@ -105,6 +106,9 @@ objs/srs_play: srs_play.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) | @@ -105,6 +106,9 @@ objs/srs_play: srs_play.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) | ||
| 105 | objs/srs_ingest_flv: srs_ingest_flv.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) | 106 | objs/srs_ingest_flv: srs_ingest_flv.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) |
| 106 | $(GCC) srs_ingest_flv.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_ingest_flv | 107 | $(GCC) srs_ingest_flv.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_ingest_flv |
| 107 | 108 | ||
| 109 | +objs/srs_ingest_mp4: srs_ingest_mp4.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) | ||
| 110 | + $(GCC) srs_ingest_mp4.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_ingest_mp4 | ||
| 111 | + | ||
| 108 | objs/srs_ingest_rtmp: srs_ingest_rtmp.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) | 112 | objs/srs_ingest_rtmp: srs_ingest_rtmp.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) |
| 109 | $(GCC) srs_ingest_rtmp.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_ingest_rtmp | 113 | $(GCC) srs_ingest_rtmp.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_ingest_rtmp |
| 110 | 114 | ||
| @@ -116,3 +120,4 @@ objs/srs_bandwidth_check: srs_bandwidth_check.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRT | @@ -116,3 +120,4 @@ objs/srs_bandwidth_check: srs_bandwidth_check.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRT | ||
| 116 | 120 | ||
| 117 | objs/srs_rtmp_dump: srs_rtmp_dump.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) | 121 | objs/srs_rtmp_dump: srs_rtmp_dump.c $(SRS_RESEARCH_DEPS) $(SRS_LIBRTMP_I) $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) |
| 118 | $(GCC) srs_rtmp_dump.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_rtmp_dump | 122 | $(GCC) srs_rtmp_dump.c $(SRS_LIBRTMP_L) $(SRS_LIBSSL_L) $(EXTRA_CXX_FLAG) -o objs/srs_rtmp_dump |
| 123 | + |
| 1 | /* | 1 | /* |
| 2 | -The MIT License (MIT) | ||
| 3 | - | ||
| 4 | -Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | - | ||
| 6 | -Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | -this software and associated documentation files (the "Software"), to deal in | ||
| 8 | -the Software without restriction, including without limitation the rights to | ||
| 9 | -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | -the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | -subject to the following conditions: | ||
| 12 | - | ||
| 13 | -The above copyright notice and this permission notice shall be included in all | ||
| 14 | -copies or substantial portions of the Software. | ||
| 15 | - | ||
| 16 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | -*/ | ||
| 23 | -/** | ||
| 24 | -gcc srs_aac_raw_publish.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_aac_raw_publish | ||
| 25 | -*/ | 2 | + The MIT License (MIT) |
| 3 | + | ||
| 4 | + Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | + | ||
| 6 | + Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | + this software and associated documentation files (the "Software"), to deal in | ||
| 8 | + the Software without restriction, including without limitation the rights to | ||
| 9 | + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | + the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | + subject to the following conditions: | ||
| 12 | + | ||
| 13 | + The above copyright notice and this permission notice shall be included in all | ||
| 14 | + copies or substantial portions of the Software. | ||
| 15 | + | ||
| 16 | + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | + */ | ||
| 26 | 23 | ||
| 27 | #include <stdio.h> | 24 | #include <stdio.h> |
| 28 | #include <stdlib.h> | 25 | #include <stdlib.h> |
| 1 | /* | 1 | /* |
| 2 | -The MIT License (MIT) | ||
| 3 | - | ||
| 4 | -Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | - | ||
| 6 | -Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | -this software and associated documentation files (the "Software"), to deal in | ||
| 8 | -the Software without restriction, including without limitation the rights to | ||
| 9 | -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | -the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | -subject to the following conditions: | ||
| 12 | - | ||
| 13 | -The above copyright notice and this permission notice shall be included in all | ||
| 14 | -copies or substantial portions of the Software. | ||
| 15 | - | ||
| 16 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | -*/ | ||
| 23 | -/** | ||
| 24 | -gcc srs_audio_raw_publish.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_audio_raw_publish | ||
| 25 | -*/ | 2 | + The MIT License (MIT) |
| 3 | + | ||
| 4 | + Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | + | ||
| 6 | + Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | + this software and associated documentation files (the "Software"), to deal in | ||
| 8 | + the Software without restriction, including without limitation the rights to | ||
| 9 | + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | + the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | + subject to the following conditions: | ||
| 12 | + | ||
| 13 | + The above copyright notice and this permission notice shall be included in all | ||
| 14 | + copies or substantial portions of the Software. | ||
| 15 | + | ||
| 16 | + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | + */ | ||
| 26 | 23 | ||
| 27 | #include <stdio.h> | 24 | #include <stdio.h> |
| 28 | #include <stdlib.h> | 25 | #include <stdlib.h> |
| 1 | /* | 1 | /* |
| 2 | -The MIT License (MIT) | ||
| 3 | - | ||
| 4 | -Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | - | ||
| 6 | -Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | -this software and associated documentation files (the "Software"), to deal in | ||
| 8 | -the Software without restriction, including without limitation the rights to | ||
| 9 | -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | -the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | -subject to the following conditions: | ||
| 12 | - | ||
| 13 | -The above copyright notice and this permission notice shall be included in all | ||
| 14 | -copies or substantial portions of the Software. | ||
| 15 | - | ||
| 16 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | -*/ | ||
| 23 | -/** | ||
| 24 | -gcc srs_bandwidth_check.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_bandwidth_check | ||
| 25 | -*/ | 2 | + The MIT License (MIT) |
| 3 | + | ||
| 4 | + Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | + | ||
| 6 | + Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | + this software and associated documentation files (the "Software"), to deal in | ||
| 8 | + the Software without restriction, including without limitation the rights to | ||
| 9 | + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | + the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | + subject to the following conditions: | ||
| 12 | + | ||
| 13 | + The above copyright notice and this permission notice shall be included in all | ||
| 14 | + copies or substantial portions of the Software. | ||
| 15 | + | ||
| 16 | + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | + */ | ||
| 26 | 23 | ||
| 27 | #include <stdio.h> | 24 | #include <stdio.h> |
| 28 | #include <stdlib.h> | 25 | #include <stdlib.h> |
| @@ -34,12 +31,6 @@ int main(int argc, char** argv) | @@ -34,12 +31,6 @@ int main(int argc, char** argv) | ||
| 34 | int ret = 0; | 31 | int ret = 0; |
| 35 | srs_rtmp_t rtmp; | 32 | srs_rtmp_t rtmp; |
| 36 | 33 | ||
| 37 | - // packet data | ||
| 38 | - int size; | ||
| 39 | - char type; | ||
| 40 | - char* data; | ||
| 41 | - uint32_t timestamp; | ||
| 42 | - | ||
| 43 | // srs debug info. | 34 | // srs debug info. |
| 44 | char srs_server_ip[128]; | 35 | char srs_server_ip[128]; |
| 45 | char srs_server[128]; | 36 | char srs_server[128]; |
| 1 | /* | 1 | /* |
| 2 | -The MIT License (MIT) | ||
| 3 | - | ||
| 4 | -Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | - | ||
| 6 | -Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | -this software and associated documentation files (the "Software"), to deal in | ||
| 8 | -the Software without restriction, including without limitation the rights to | ||
| 9 | -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | -the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | -subject to the following conditions: | ||
| 12 | - | ||
| 13 | -The above copyright notice and this permission notice shall be included in all | ||
| 14 | -copies or substantial portions of the Software. | ||
| 15 | - | ||
| 16 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | -*/ | ||
| 23 | -/** | ||
| 24 | -gcc srs_detect_rtmp.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_detect_rtmp | ||
| 25 | -*/ | 2 | + The MIT License (MIT) |
| 3 | + | ||
| 4 | + Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | + | ||
| 6 | + Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | + this software and associated documentation files (the "Software"), to deal in | ||
| 8 | + the Software without restriction, including without limitation the rights to | ||
| 9 | + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | + the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | + subject to the following conditions: | ||
| 12 | + | ||
| 13 | + The above copyright notice and this permission notice shall be included in all | ||
| 14 | + copies or substantial portions of the Software. | ||
| 15 | + | ||
| 16 | + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | + */ | ||
| 26 | 23 | ||
| 27 | #include <stdio.h> | 24 | #include <stdio.h> |
| 28 | #include <stdlib.h> | 25 | #include <stdlib.h> |
| 1 | /* | 1 | /* |
| 2 | -The MIT License (MIT) | ||
| 3 | - | ||
| 4 | -Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | - | ||
| 6 | -Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | -this software and associated documentation files (the "Software"), to deal in | ||
| 8 | -the Software without restriction, including without limitation the rights to | ||
| 9 | -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | -the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | -subject to the following conditions: | ||
| 12 | - | ||
| 13 | -The above copyright notice and this permission notice shall be included in all | ||
| 14 | -copies or substantial portions of the Software. | ||
| 15 | - | ||
| 16 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | -*/ | ||
| 23 | -/** | ||
| 24 | -gcc srs_flv_injecter.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_flv_injecter | ||
| 25 | -*/ | 2 | + The MIT License (MIT) |
| 3 | + | ||
| 4 | + Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | + | ||
| 6 | + Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | + this software and associated documentation files (the "Software"), to deal in | ||
| 8 | + the Software without restriction, including without limitation the rights to | ||
| 9 | + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | + the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | + subject to the following conditions: | ||
| 12 | + | ||
| 13 | + The above copyright notice and this permission notice shall be included in all | ||
| 14 | + copies or substantial portions of the Software. | ||
| 15 | + | ||
| 16 | + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | + */ | ||
| 26 | 23 | ||
| 27 | #include <stdio.h> | 24 | #include <stdio.h> |
| 28 | #include <stdlib.h> | 25 | #include <stdlib.h> |
| 1 | /* | 1 | /* |
| 2 | -The MIT License (MIT) | ||
| 3 | - | ||
| 4 | -Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | - | ||
| 6 | -Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | -this software and associated documentation files (the "Software"), to deal in | ||
| 8 | -the Software without restriction, including without limitation the rights to | ||
| 9 | -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | -the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | -subject to the following conditions: | ||
| 12 | - | ||
| 13 | -The above copyright notice and this permission notice shall be included in all | ||
| 14 | -copies or substantial portions of the Software. | ||
| 15 | - | ||
| 16 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | -*/ | ||
| 23 | -/** | ||
| 24 | -gcc srs_ingest_flv.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_ingest_flv | ||
| 25 | -*/ | 2 | + The MIT License (MIT) |
| 3 | + | ||
| 4 | + Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | + | ||
| 6 | + Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | + this software and associated documentation files (the "Software"), to deal in | ||
| 8 | + the Software without restriction, including without limitation the rights to | ||
| 9 | + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | + the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | + subject to the following conditions: | ||
| 12 | + | ||
| 13 | + The above copyright notice and this permission notice shall be included in all | ||
| 14 | + copies or substantial portions of the Software. | ||
| 15 | + | ||
| 16 | + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | + */ | ||
| 26 | 23 | ||
| 27 | #include <stdio.h> | 24 | #include <stdio.h> |
| 28 | #include <string.h> | 25 | #include <string.h> |
| 1 | /* | 1 | /* |
| 2 | -The MIT License (MIT) | ||
| 3 | - | ||
| 4 | -Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | - | ||
| 6 | -Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | -this software and associated documentation files (the "Software"), to deal in | ||
| 8 | -the Software without restriction, including without limitation the rights to | ||
| 9 | -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | -the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | -subject to the following conditions: | ||
| 12 | - | ||
| 13 | -The above copyright notice and this permission notice shall be included in all | ||
| 14 | -copies or substantial portions of the Software. | ||
| 15 | - | ||
| 16 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | -*/ | ||
| 23 | -/** | ||
| 24 | -gcc srs_h264_raw_publish.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_h264_raw_publish | ||
| 25 | -*/ | 2 | + The MIT License (MIT) |
| 3 | + | ||
| 4 | + Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | + | ||
| 6 | + Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | + this software and associated documentation files (the "Software"), to deal in | ||
| 8 | + the Software without restriction, including without limitation the rights to | ||
| 9 | + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | + the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | + subject to the following conditions: | ||
| 12 | + | ||
| 13 | + The above copyright notice and this permission notice shall be included in all | ||
| 14 | + copies or substantial portions of the Software. | ||
| 15 | + | ||
| 16 | + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | + */ | ||
| 26 | 23 | ||
| 27 | #include <stdio.h> | 24 | #include <stdio.h> |
| 28 | #include <stdlib.h> | 25 | #include <stdlib.h> |
| @@ -20,9 +20,6 @@ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | @@ -20,9 +20,6 @@ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 20 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
| 21 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | 21 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| 22 | */ | 22 | */ |
| 23 | -/** | ||
| 24 | -gcc srs_ingest_flv.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_ingest_flv | ||
| 25 | -*/ | ||
| 26 | 23 | ||
| 27 | #include <stdio.h> | 24 | #include <stdio.h> |
| 28 | #include <stdlib.h> | 25 | #include <stdlib.h> |
trunk/research/librtmp/srs_ingest_mp4.c
0 → 100644
| 1 | +/* | ||
| 2 | + The MIT License (MIT) | ||
| 3 | + | ||
| 4 | + Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | + | ||
| 6 | + Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | + this software and associated documentation files (the "Software"), to deal in | ||
| 8 | + the Software without restriction, including without limitation the rights to | ||
| 9 | + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | + the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | + subject to the following conditions: | ||
| 12 | + | ||
| 13 | + The above copyright notice and this permission notice shall be included in all | ||
| 14 | + copies or substantial portions of the Software. | ||
| 15 | + | ||
| 16 | + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | + */ | ||
| 23 | + | ||
| 24 | +#include <stdio.h> | ||
| 25 | +#include <stdlib.h> | ||
| 26 | + | ||
| 27 | +#include "../../objs/include/srs_librtmp.h" | ||
| 28 | + | ||
| 29 | +int main(int argc, char** argv) | ||
| 30 | +{ | ||
| 31 | + int ret, opt; | ||
| 32 | + | ||
| 33 | + printf("Ingest mp4 file and publish to RTMP server like FFMPEG.\n"); | ||
| 34 | + printf("SRS(OSSRS) client librtmp library.\n"); | ||
| 35 | + printf("Version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision()); | ||
| 36 | + | ||
| 37 | + if (argc <= 2) { | ||
| 38 | + printf("Ingest mp4 file and publish to RTMP server\n" | ||
| 39 | + "Usage: %s <-i in_mp4_file> <-y out_rtmp_url>\n" | ||
| 40 | + " in_mp4_file input mp4 file, ingest from this file.\n" | ||
| 41 | + " out_rtmp_url output rtmp url, publish to this url.\n" | ||
| 42 | + "@remark Only support non-seek mp4, see https://github.com/ossrs/srs/issues/738#issuecomment-276343669\n" | ||
| 43 | + "For example:\n" | ||
| 44 | + " %s -i avatar.mp4 -y rtmp://127.0.0.1/live/livestream\n", | ||
| 45 | + argv[0], argv[0]); | ||
| 46 | + exit(-1); | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + for (opt = 0; opt < argc; opt++) { | ||
| 50 | + srs_human_trace("argv[%d]=%s", opt, argv[opt]); | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + return ret; | ||
| 54 | +} | ||
| 55 | + |
| 1 | /* | 1 | /* |
| 2 | -The MIT License (MIT) | ||
| 3 | - | ||
| 4 | -Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | - | ||
| 6 | -Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | -this software and associated documentation files (the "Software"), to deal in | ||
| 8 | -the Software without restriction, including without limitation the rights to | ||
| 9 | -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | -the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | -subject to the following conditions: | ||
| 12 | - | ||
| 13 | -The above copyright notice and this permission notice shall be included in all | ||
| 14 | -copies or substantial portions of the Software. | ||
| 15 | - | ||
| 16 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | -*/ | ||
| 23 | -/** | ||
| 24 | -gcc srs_ingest_rtmp.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_ingest_rtmp | ||
| 25 | -*/ | 2 | + The MIT License (MIT) |
| 3 | + | ||
| 4 | + Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | + | ||
| 6 | + Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | + this software and associated documentation files (the "Software"), to deal in | ||
| 8 | + the Software without restriction, including without limitation the rights to | ||
| 9 | + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | + the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | + subject to the following conditions: | ||
| 12 | + | ||
| 13 | + The above copyright notice and this permission notice shall be included in all | ||
| 14 | + copies or substantial portions of the Software. | ||
| 15 | + | ||
| 16 | + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | + */ | ||
| 26 | 23 | ||
| 27 | #include <stdio.h> | 24 | #include <stdio.h> |
| 28 | #include <stdlib.h> | 25 | #include <stdlib.h> |
| 1 | /* | 1 | /* |
| 2 | -The MIT License (MIT) | ||
| 3 | - | ||
| 4 | -Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | - | ||
| 6 | -Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | -this software and associated documentation files (the "Software"), to deal in | ||
| 8 | -the Software without restriction, including without limitation the rights to | ||
| 9 | -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | -the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | -subject to the following conditions: | ||
| 12 | - | ||
| 13 | -The above copyright notice and this permission notice shall be included in all | ||
| 14 | -copies or substantial portions of the Software. | ||
| 15 | - | ||
| 16 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | -*/ | ||
| 23 | -/** | ||
| 24 | -gcc srs_play.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_play | ||
| 25 | -*/ | 2 | + The MIT License (MIT) |
| 3 | + | ||
| 4 | + Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | + | ||
| 6 | + Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | + this software and associated documentation files (the "Software"), to deal in | ||
| 8 | + the Software without restriction, including without limitation the rights to | ||
| 9 | + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | + the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | + subject to the following conditions: | ||
| 12 | + | ||
| 13 | + The above copyright notice and this permission notice shall be included in all | ||
| 14 | + copies or substantial portions of the Software. | ||
| 15 | + | ||
| 16 | + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | + */ | ||
| 26 | 23 | ||
| 27 | #include <stdio.h> | 24 | #include <stdio.h> |
| 28 | #include <stdlib.h> | 25 | #include <stdlib.h> |
| 1 | /* | 1 | /* |
| 2 | -The MIT License (MIT) | ||
| 3 | - | ||
| 4 | -Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | - | ||
| 6 | -Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | -this software and associated documentation files (the "Software"), to deal in | ||
| 8 | -the Software without restriction, including without limitation the rights to | ||
| 9 | -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | -the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | -subject to the following conditions: | ||
| 12 | - | ||
| 13 | -The above copyright notice and this permission notice shall be included in all | ||
| 14 | -copies or substantial portions of the Software. | ||
| 15 | - | ||
| 16 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | -*/ | ||
| 23 | -/** | ||
| 24 | -gcc srs_publish.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_publish | ||
| 25 | -*/ | 2 | + The MIT License (MIT) |
| 3 | + | ||
| 4 | + Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | + | ||
| 6 | + Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | + this software and associated documentation files (the "Software"), to deal in | ||
| 8 | + the Software without restriction, including without limitation the rights to | ||
| 9 | + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | + the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | + subject to the following conditions: | ||
| 12 | + | ||
| 13 | + The above copyright notice and this permission notice shall be included in all | ||
| 14 | + copies or substantial portions of the Software. | ||
| 15 | + | ||
| 16 | + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | + */ | ||
| 26 | 23 | ||
| 27 | #include <stdio.h> | 24 | #include <stdio.h> |
| 28 | #include <stdlib.h> | 25 | #include <stdlib.h> |
| 1 | /* | 1 | /* |
| 2 | -The MIT License (MIT) | ||
| 3 | - | ||
| 4 | -Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | - | ||
| 6 | -Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | -this software and associated documentation files (the "Software"), to deal in | ||
| 8 | -the Software without restriction, including without limitation the rights to | ||
| 9 | -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | -the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | -subject to the following conditions: | ||
| 12 | - | ||
| 13 | -The above copyright notice and this permission notice shall be included in all | ||
| 14 | -copies or substantial portions of the Software. | ||
| 15 | - | ||
| 16 | -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | -*/ | ||
| 23 | -/** | ||
| 24 | -gcc srs_rtmp_dump.c ../../objs/lib/srs_librtmp.a -g -O0 -lstdc++ -o srs_rtmp_dump | ||
| 25 | -*/ | 2 | + The MIT License (MIT) |
| 3 | + | ||
| 4 | + Copyright (c) 2013-2017 SRS(ossrs) | ||
| 5 | + | ||
| 6 | + Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 7 | + this software and associated documentation files (the "Software"), to deal in | ||
| 8 | + the Software without restriction, including without limitation the rights to | ||
| 9 | + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 10 | + the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 11 | + subject to the following conditions: | ||
| 12 | + | ||
| 13 | + The above copyright notice and this permission notice shall be included in all | ||
| 14 | + copies or substantial portions of the Software. | ||
| 15 | + | ||
| 16 | + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 17 | + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 18 | + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 19 | + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 20 | + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 21 | + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 22 | + */ | ||
| 26 | 23 | ||
| 27 | #include <stdio.h> | 24 | #include <stdio.h> |
| 28 | #include <stdlib.h> | 25 | #include <stdlib.h> |
| @@ -25,6 +25,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -25,6 +25,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 25 | 25 | ||
| 26 | #include <string.h> | 26 | #include <string.h> |
| 27 | 27 | ||
| 28 | +#include <srs_kernel_error.hpp> | ||
| 29 | + | ||
| 28 | SrsMp4Box::SrsMp4Box() | 30 | SrsMp4Box::SrsMp4Box() |
| 29 | { | 31 | { |
| 30 | size = 0; | 32 | size = 0; |
| @@ -422,3 +424,19 @@ SrsMp4SampleSizeBox::~SrsMp4SampleSizeBox() | @@ -422,3 +424,19 @@ SrsMp4SampleSizeBox::~SrsMp4SampleSizeBox() | ||
| 422 | srs_freepa(entry_sizes); | 424 | srs_freepa(entry_sizes); |
| 423 | } | 425 | } |
| 424 | 426 | ||
| 427 | +SrsMp4Decoder::SrsMp4Decoder() | ||
| 428 | +{ | ||
| 429 | +} | ||
| 430 | + | ||
| 431 | +SrsMp4Decoder::~SrsMp4Decoder() | ||
| 432 | +{ | ||
| 433 | +} | ||
| 434 | + | ||
| 435 | +int SrsMp4Decoder::initialize(ISrsReader* r) | ||
| 436 | +{ | ||
| 437 | + srs_assert(r); | ||
| 438 | + reader = r; | ||
| 439 | + | ||
| 440 | + return ERROR_SUCCESS; | ||
| 441 | +} | ||
| 442 | + |
| @@ -31,6 +31,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -31,6 +31,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 31 | 31 | ||
| 32 | #include <string> | 32 | #include <string> |
| 33 | 33 | ||
| 34 | +class ISrsReader; | ||
| 35 | + | ||
| 34 | /** | 36 | /** |
| 35 | * 4.2 Object Structure | 37 | * 4.2 Object Structure |
| 36 | * ISO_IEC_14496-12-base-format-2012.pdf, page 16 | 38 | * ISO_IEC_14496-12-base-format-2012.pdf, page 16 |
| @@ -760,5 +762,24 @@ public: | @@ -760,5 +762,24 @@ public: | ||
| 760 | virtual ~SrsMp4SampleSizeBox(); | 762 | virtual ~SrsMp4SampleSizeBox(); |
| 761 | }; | 763 | }; |
| 762 | 764 | ||
| 765 | +/** | ||
| 766 | + * The MP4 demuxer. | ||
| 767 | + */ | ||
| 768 | +class SrsMp4Decoder | ||
| 769 | +{ | ||
| 770 | +private: | ||
| 771 | + ISrsReader* reader; | ||
| 772 | +public: | ||
| 773 | + SrsMp4Decoder(); | ||
| 774 | + virtual ~SrsMp4Decoder(); | ||
| 775 | +public: | ||
| 776 | + /** | ||
| 777 | + * Initialize the decoder with a reader r. | ||
| 778 | + * @param r The underlayer io reader, user must manage it for decoder never open/free it, | ||
| 779 | + * the decoder just read data from the reader. | ||
| 780 | + */ | ||
| 781 | + virtual int initialize(ISrsReader* r); | ||
| 782 | +}; | ||
| 783 | + | ||
| 763 | #endif | 784 | #endif |
| 764 | 785 |
| @@ -49,6 +49,7 @@ using namespace std; | @@ -49,6 +49,7 @@ using namespace std; | ||
| 49 | #include <srs_kernel_file.hpp> | 49 | #include <srs_kernel_file.hpp> |
| 50 | #include <srs_lib_bandwidth.hpp> | 50 | #include <srs_lib_bandwidth.hpp> |
| 51 | #include <srs_raw_avc.hpp> | 51 | #include <srs_raw_avc.hpp> |
| 52 | +#include <srs_kernel_mp4.hpp> | ||
| 52 | 53 | ||
| 53 | // kernel module. | 54 | // kernel module. |
| 54 | ISrsLog* _srs_log = new ISrsLog(); | 55 | ISrsLog* _srs_log = new ISrsLog(); |
| @@ -1547,7 +1548,9 @@ srs_bool srs_h264_startswith_annexb(char* h264_raw_data, int h264_raw_size, int* | @@ -1547,7 +1548,9 @@ srs_bool srs_h264_startswith_annexb(char* h264_raw_data, int h264_raw_size, int* | ||
| 1547 | 1548 | ||
| 1548 | struct Mp4Context | 1549 | struct Mp4Context |
| 1549 | { | 1550 | { |
| 1551 | + bool non_seekable; | ||
| 1550 | SrsFileReader reader; | 1552 | SrsFileReader reader; |
| 1553 | + SrsMp4Decoder dec; | ||
| 1551 | }; | 1554 | }; |
| 1552 | 1555 | ||
| 1553 | srs_mp4_t srs_mp4_open_read(const char* file) | 1556 | srs_mp4_t srs_mp4_open_read(const char* file) |
| @@ -1555,6 +1558,7 @@ srs_mp4_t srs_mp4_open_read(const char* file) | @@ -1555,6 +1558,7 @@ srs_mp4_t srs_mp4_open_read(const char* file) | ||
| 1555 | int ret = ERROR_SUCCESS; | 1558 | int ret = ERROR_SUCCESS; |
| 1556 | 1559 | ||
| 1557 | Mp4Context* mp4 = new Mp4Context(); | 1560 | Mp4Context* mp4 = new Mp4Context(); |
| 1561 | + mp4->non_seekable = false; | ||
| 1558 | 1562 | ||
| 1559 | if ((ret = mp4->reader.open(file)) != ERROR_SUCCESS) { | 1563 | if ((ret = mp4->reader.open(file)) != ERROR_SUCCESS) { |
| 1560 | srs_freep(mp4); | 1564 | srs_freep(mp4); |
| @@ -1569,6 +1573,22 @@ void srs_mp4_close(srs_mp4_t mp4) | @@ -1569,6 +1573,22 @@ void srs_mp4_close(srs_mp4_t mp4) | ||
| 1569 | Mp4Context* context = (Mp4Context*)mp4; | 1573 | Mp4Context* context = (Mp4Context*)mp4; |
| 1570 | srs_freep(context); | 1574 | srs_freep(context); |
| 1571 | } | 1575 | } |
| 1576 | + | ||
| 1577 | +int srs_mp4_init_demuxer(srs_mp4_t mp4) | ||
| 1578 | +{ | ||
| 1579 | + int ret = ERROR_SUCCESS; | ||
| 1580 | + | ||
| 1581 | + Mp4Context* context = (Mp4Context*)mp4; | ||
| 1582 | + | ||
| 1583 | + if ((ret = context->dec.initialize(&context->reader)) != ERROR_SUCCESS) { | ||
| 1584 | + return ret; | ||
| 1585 | + } | ||
| 1586 | + | ||
| 1587 | + // OK, it's legal mp4 for live streaming. | ||
| 1588 | + context->non_seekable = true; | ||
| 1589 | + | ||
| 1590 | + return ret; | ||
| 1591 | +} | ||
| 1572 | 1592 | ||
| 1573 | struct FlvContext | 1593 | struct FlvContext |
| 1574 | { | 1594 | { |
| @@ -516,6 +516,12 @@ typedef void* srs_mp4_t; | @@ -516,6 +516,12 @@ typedef void* srs_mp4_t; | ||
| 516 | /* Open mp4 file for muxer(write) or demuxer(read). */ | 516 | /* Open mp4 file for muxer(write) or demuxer(read). */ |
| 517 | extern srs_mp4_t srs_mp4_open_read(const char* file); | 517 | extern srs_mp4_t srs_mp4_open_read(const char* file); |
| 518 | extern void srs_mp4_close(srs_mp4_t mp4); | 518 | extern void srs_mp4_close(srs_mp4_t mp4); |
| 519 | +/** | ||
| 520 | + * Initialize mp4 demuxer in non-seek mode. | ||
| 521 | + * @remark Only support non-seek mode, that is fmp4 or moov before mdata. | ||
| 522 | + * For the live streaming, we must feed stream frame by frame. | ||
| 523 | + */ | ||
| 524 | +extern int srs_mp4_init_demuxer(srs_mp4_t mp4); | ||
| 519 | 525 | ||
| 520 | /************************************************************* | 526 | /************************************************************* |
| 521 | ************************************************************** | 527 | ************************************************************** |
-
请 注册 或 登录 后发表评论