Mẹo thực hành

Chuyển M3U8 sang MP4: FFmpeg, VLC và lỗi thường gặp

Lưu tệp hoặc URL M3U8 thành MP4: sao chép luồng, mã hóa H.264/AAC, VLC và kiểm tra truy cập, tiếng, phát lại.

Cập nhật

M3U8 là danh sách phát; MP4 là vùng chứa có thể lưu video và âm thanh.

Đổi tên thành MP4 mà M3U8 vẫn không mở trong trình dựng? Trước tiên kiểm tra các đoạn phương tiện được tham chiếu có còn truy cập được không. Hướng dẫn dùng nguồn HLS đã kết thúc mà bạn sở hữu hoặc được phép lưu.

Phân biệt danh sách với các đoạn phương tiện

M3U8 thường là danh sách văn bản các đoạn HLS, không phải video. Nó có thể trỏ tới chất lượng khác hoặc danh sách tiếng riêng. Đổi đuôi thành .mp4 không tạo ra dữ liệu video.

Danh sách và tài nguyên liên quan đều phải truy cập được. Bản cục bộ cần cả .ts, .m4s và tệp khởi tạo. Giữ cấu trúc thư mục với đường dẫn tương đối. Hướng dẫn dùng nguồn đã kết thúc, không phải ghi buổi phát trực tiếp.

Thử sao chép luồng bằng FFmpeg trước

Trước tiên chạy ffmpeg -version trong cửa sổ dòng lệnh mới. Nếu không tìm thấy lệnh, kiểm tra cài đặt và đường dẫn chương trình. Ví dụ chọn video đầu và âm thanh đầu, không nhất thiết là chất lượng cao nhất hay đúng ngôn ngữ. Video không có tiếng tạo MP4 im lặng. Danh sách chỉ âm thanh cần lệnh khác; phụ đề và các rãnh còn lại không được đưa vào.

-c copy đổi vùng chứa mà không mã hóa lại, tránh thêm một thế hệ mã hóa. Nó không khôi phục đoạn thiếu hay sửa codec không hợp MP4. Chỉ dùng đường dẫn hoặc URL được phép, giữ dấu nháy với khoảng trắng và tham số. +faststart đưa siêu dữ liệu MP4 lên đầu để dễ bắt đầu phát. Nó không tăng tốc độ tải qua mạng.

  1. Mở terminal trong thư mục lưu kết quả. Với danh sách phát cục bộ, chuẩn bị bản sao cùng các đoạn và giữ nguyên cấu trúc thư mục.
  2. Thay đầu vào bằng đường dẫn thật hoặc URL của danh sách, chọn tên đầu ra mới.
  3. Chạy sao chép rồi kiểm tra lỗi và phát lại.
Lưu MP4 mà không mã hóa lại
ffmpeg -i "input.m3u8" -map 0:v:0 -map "0:a:0?" -c copy -movflags +faststart "output.mp4"

Mã hóa lại để tương thích hoặc dùng VLC

Nếu thiết bị đích không phát bản sao, thử H.264 và AAC. Lệnh cần FFmpeg có libx264 và AAC. Mã hóa lại tốn thời gian, có thể đổi chất lượng và dung lượng; giữ bản gốc. Đây là ví dụ SDR thông thường; ánh xạ tông màu HDR sang SDR cần thiết lập riêng.

Mã hóa cho tương thích: H.264 và AAC
ffmpeg -i "input.m3u8" -map 0:v:0 -map "0:a:0?" -c:v libx264 -crf 20 -preset medium -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart "output-compatible.mp4"

Trên Windows, VLC thường đi qua Media → Convert/Save, đầu vào Network, cấu hình và đích. Cấu hình có thể tên H.264 + MP3 (MP4); AAC và nhãn tùy phiên bản. Menu macOS khác.

  1. Tìm Media → Convert/Save và thẻ Network.
  2. Nhập URL M3U8 rồi chọn Convert.
  3. Kiểm tra cấu hình MP4 và đích .mp4 mới.
  4. Chọn Start rồi mở kết quả; nếu giao diện khác, xem trợ giúp chính thức của phiên bản.

Tách riêng lỗi 403, 404 và không có tiếng

Với 403, kiểm tra quyền và hạn; với 404, kiểm tra địa chỉ đổi hoặc mất. Nếu một đoạn lỗi, xem đường dẫn và tệp khởi tạo. Di chuyển thư mục cũng làm hỏng tham chiếu. Mã hóa lại không thay được dữ liệu thiếu.

Không có tiếng thì kiểm tra luồng âm thanh, danh sách riêng và rãnh đã chọn. Rãnh đầu tiên chưa chắc đúng ngôn ngữ. Dùng nguồn được phép còn hiệu lực hoặc tải chính thức. Với DRM hay hạn chế, dùng cách lưu dịch vụ hỗ trợ.

Kiểm tra di động, tải lên và tệp hoàn chỉnh

Trên điện thoại, tìm tải chính thức hoặc chức năng ngoại tuyến trước. Kiểm tra trình đổi trực tuyến cần các đoạn không và có gửi tệp hoặc URL lên máy chủ không. Đọc xử lý và lưu giữ trước khi đưa video riêng hay liên kết xác thực.

Phát đầu, giữa và cuối cùng tiếng, đối chiếu thời lượng. Danh sách trực tiếp thiếu dấu kết thúc có thể không tự dừng và không lấy lại đoạn cũ đã xóa. Ưu tiên VOD kết thúc. Bản minh họa dùng HLS ngắn đã hoàn tất do chúng tôi tạo.

Kiểm tra kết quả: luồng và thời lượng Thay output.mp4 bằng tên tệp bạn đã lưu thực tế. Ví dụ mã hóa lại tạo output-compatible.mp4.
ffprobe -v error -show_entries format=duration:stream=codec_type,codec_name,width,height -of json "output.mp4"
MP4 này được lưu từ ví dụ HLS ngắn do chúng tôi tạo. Phát để kiểm tra thời lượng và tiếng.

So thời lượng rồi phát đầu, giữa và cuối cùng âm thanh. Chia sẻ MP4 đã kiểm tra và giữ danh sách cùng các đoạn gốc cho đến khi kiểm tra xong.

Công cụ

Nguồn

Dựa trên tài liệu công cộng; không kiểm tra toàn bộ chức năng hay an ninh.

Tất cả hướng dẫn →