Tôi không thể tìm thấy giải pháp cho my previous question vì vậy tôi quyết định thử từng bước một.Cách ghi luồng RTP/H264 dưới dạng tệp
Điều mà tôi muốn làm bây giờ là lưu trữ luồng RTP/H264 dưới dạng tệp.
Những gì tôi tìm thấy cho đến nay là dưới đây:
(trước hết tôi RTP/H264 là FU-A mà là hình thức)
| RTP HEADER 12bytes long | FU INDICATOR 1byte | FU HEADER 1byte | FU payload |
Như tôi hiểu RFC 6184 tài liệu, tôi bắt đầu một NAL với một gói có '1' ở bit đầu tiên của FU Header và gắn thêm các gói sau đặt '0' ở bit đầu tiên cho đến gói cuối cùng có '1' ở bit thứ hai của FU Header.
Tôi nghĩ đó là cách để có được một NAL hoàn chỉnh trước khi gói tin FU-A và những gì tôi tìm thấy là tôi cần phải đặt 'bit bắt đầu' (0x00000001) ở phía trước của mỗi NAL hoàn chỉnh.
Nhưng không may mắn cho đến nay. Dưới đây là một phần của bản ghi
========= the new NAL is as 1400
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]7C/1111100 [5]85/10000101 [6]B8/10111000 [7]40/1000000 ...
========= adding the next NAL as 1400
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]7C/1111100 [5]85/10000101 [6]B8/10111000 [7]40/1000000 ...
========= adding the next NAL as 1400
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]7C/1111100 [5]85/10000101 [6]B8/10111000 [7]40/1000000 ...
========= adding the next NAL as 716
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]7C/1111100 [5]85/10000101 [6]B8/10111000 [7]40/1000000 ...
========= a NAL is summed up as 4866
========= the new NAL is as 1400
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]5C/1011100 [5]81/10000001 [6]E2/11100010 [7]20/100000 ...
========= adding the next NAL as 1400
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]5C/1011100 [5]81/10000001 [6]E2/11100010 [7]20/100000 ...
========= adding the next NAL as 1400
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]5C/1011100 [5]81/10000001 [6]E2/11100010 [7]20/100000 ...
========= adding the next NAL as 1400
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]5C/1011100 [5]81/10000001 [6]E2/11100010 [7]20/100000 ...
========= adding the next NAL as 1400
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]5C/1011100 [5]81/10000001 [6]E2/11100010 [7]20/100000 ...
========= adding the next NAL as 139
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]5C/1011100 [5]81/10000001 [6]E2/11100010 [7]20/100000 ...
========= a NAL is summed up as 7061
========= the new NAL is as 1377
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]41/1000001 [5]E4/11100100 [6]40/1000000 [7]1A/11010 ...
========= a NAL is summed up as 1369
========= the new NAL is as 1400
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]5C/1011100 [5]81/10000001 [6]E6/11100110 [7]60/1100000 ...
========= adding the next NAL as 94
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]5C/1011100 [5]81/10000001 [6]E6/11100110 [7]60/1100000 ...
========= a NAL is summed up as 1472
========= the new NAL is as 447
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]41/1000001 [5]E8/11101000 [6]80/10000000 [7]16/10110 ...
========= a NAL is summed up as 439
========= the new NAL is as 1400
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]5C/1011100 [5]81/10000001 [6]EA/11101010 [7]A0/10100000 ...
========= adding the next NAL as 1174
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]5C/1011100 [5]81/10000001 [6]EA/11101010 [7]A0/10100000 ...
========= a NAL is summed up as 2552
========= the new NAL is as 1400
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]5C/1011100 [5]81/10000001 [6]EC/11101100 [7]C0/11000000 ...
========= adding the next NAL as 1364
[0]0/0 [1]0/0 [2]0/0 [3]1/1 [4]5C/1011100 [5]81/10000001 [6]EC/11101100 [7]C0/11000000 ...
========= a NAL is summed up as 2742
========= the new NAL is as 1400
...
câu hỏi của tôi là,
nếu tôi có thể nhận được NALs hoàn chỉnh từ các gói tin bị phân mảnh bởi FU-A, làm thế nào tôi có thể làm cho nó như là một tập tin đó là có thể chạy bằng VLC hoặc trình phát khác không?
Tôi vẫn còn bối rối nếu tôi phải giữ chỉ báo FU và tiêu đề FU hay không. Ai đó nói tôi chỉ cần lấy chúng cho gói đầu tiên (bắt đầu bằng '1' ở tiêu đề FU)
Bất kỳ lời khuyên nào cũng sẽ được đánh giá cao.
Cảm ơn.
Hey, tôi đang cố gắng làm điều tương tự .. Tôi đọc RFC 6184 và cố gắng làm theo các bước tương tự và lưu nó vào một tệp .. Nhưng tệp của tôi dường như không chơi ... Có thể bạn vui lòng đăng giải pháp bạn đã sử dụng? Câu hỏi này có hơn 7k lượt xem .. Nó sẽ hữu ích cho tất cả chúng ta .. –