Truyền phát mp4 với ffmpeg


16

Tôi cần tạo nguồn cấp dữ liệu có hai luồng - webm và mp4 - để nó có thể tương thích trên tất cả các trình phát video HTML5. Các luồng webm hoạt động hoàn hảo. Tuy nhiên, khi cố gắng truy cập luồng mp4, máy chủ sẽ phát sinh lỗi sau:

Sat Mar  9 23:21:54 2013 muxer does not support non seekable output

Đây là một phần của tệp ffserver.conf liên quan đến luồng mp4:

<Stream channel1.mp4>       # Output stream URL definition
   Feed feed1.ffm              # Feed from which to receive video
   Format mp4

   # Audio settings
   AudioCodec libmp3lame
   AudioBitRate 64             # Audio bitrate

   # Video settings
   VideoCodec libx264
   VideoSize 560x320           # Video resolution
   VideoFrameRate 25           # Video FPS
   AVOptionVideo flags +global_header  # Parameters passed to encoder
                                       # (same as ffmpeg command-line parameters)
   AVOptionVideo cpu-used 0
   AVOptionVideo qmin 10
   AVOptionVideo qmax 42
   AVOptionVideo quality good
   AVOptionAudio flags +global_header
   PreRoll 15
   StartSendOnKey
   VideoBitRate 400            # Video bitrate
</Stream>

Từ những gì tôi có thể tìm thấy, một số người đang nói rằng mp4 đơn giản là không thể phát trực tuyến. Tôi không có tệp đính kèm với mp4, ngoại trừ thực tế là tôi có ấn tượng rằng bạn cần mp4 để truyền phát video đến iPhone bằng trình phát video HTML5. Nếu đây không phải là trường hợp, hãy cho tôi biết và tôi sẽ sẵn lòng chuyển sang thứ gì đó đẹp hơn với phát trực tuyến ffmpeg.


3
Bạn không thực sự phải truyền phát MP4. Đối với video HTML5 H.264 / MP4, nó phải đủ để mã hóa tệp video -movflags faststarthoặc xử lý nó qt-faststart, sau đó trỏ đến tệp MP4 trong <video>thẻ. Máy chủ của bạn sau đó cần một mô-đun truyền phát H.264 để cho phép khách hàng tìm kiếm. Hay bạn có đầu vào trực tiếp?
slhck

Khách hàng của tôi đang yêu cầu điều này được phát trực tuyến - anh ta muốn vô hiệu hóa tìm kiếm khách hàng hoàn toàn. Nó phát trực tuyến từ một tệp (tệp trên máy chủ có định dạng webm, nếu nó tạo ra sự khác biệt). Tôi không thể đơn giản ẩn các điều khiển, bởi vì iPhone buộc các điều khiển được hiển thị.
Fibericon

@slhck: Tôi đang phát trực tiếp đầu vào webcam với mp4 nhưng không thể làm được. Nó hoạt động khi tôi sử dụng flv. Có thể sử dụng mp4 để phát trực tiếp?
John Qualis

@JohnQualis Không chắc chắn nếu nó có thể thực hiện được với ffserver. Nhưng thực tế, container không quan trọng - các codec giống nhau với FLV và MP4 (H.264 và AAC).
slhck

@sklhck: Tôi đã làm cho nó hoạt động với flv bằng ffserver nhưng không phải với mp4. Hầu hết các trình duyệt web đều hỗ trợ mp4. Tôi cần một cái gì đó hoạt động trên iphone, Android và tất cả các trình duyệt web nổi tiếng và đó là h264 :) Và tôi đang phát trực tiếp một webcam
John Qualis

Câu trả lời:


6

Bài viết Video thân thiện với HTML 5 và iPad từ Trang web của riêng bạn , được cập nhật lần cuối ngày 12 tháng 11 năm 2014, có thông tin này:

hình ảnh

Bài viết khuyến nghị sử dụng MP4 như một giải pháp tốt với phiên bản ffmpeg đủ gần đây, sử dụng mã hóa H.264 với AAC.

Tôi khuyên bạn nên đọc bài viết chú ý đến các chi tiết: Nó chứa tệp HTML ví dụ sẽ hoạt động trên tất cả các trình duyệt chính, cũng như lệnh FFmpeg mẫu được sử dụng để chuyển đổi video thành tệp .mp4 để chúng truyền phát chính xác.


Đây có phải là về phát trực tiếp "trực tiếp"?
Markus Siebene Rich 7/12/2015

@MarkusSiebene Rich: Vâng, chủ yếu.
harrymc

Tôi vẫn gặp vấn đề "phát trực tiếp" mp4 với ffmpeg, vì có vẻ như không "tìm kiếm được". Tôi dẫn đầu ra ffmpeg trực tiếp đến trình duyệt, với webm nó hoạt động ngay lập tức. Sử dụng định dạng mp4, nó nói rằng nó không thể tìm kiếm được ... Vì vậy, tôi thực sự tự hỏi phải làm gì để phát trực tiếp mp4 "trực tiếp", trong đó không có video nào được lưu dưới dạng tệp trực tiếp (điều này có thể tìm kiếm được).
Markus Siebene Rich 7/12/2015

@MarkusSiebene Rich: Tôi đề nghị đặt câu hỏi này trong một bài đăng mới với các chi tiết.
harrymc

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.