2012-04-30 35 views
5

Khi tôi trích xuất dòng video với ffmpeg sử dụng dòng lệnh:Có cách nào dễ dàng để trích xuất luồng thô h.264 ở định dạng phụ lục không?

ffmpeg -i {một số tập tin} -vcodec sao chép -f -an {rawvideo | h264 | bất cứ điều gì} out.h264

với một số các tập tin media được sản xuất bởi Adobe Media Encoder, chỉ các tệp .m4v (được mã hóa dưới dạng đĩa blu-ray h.264) mới có thể tạo ra một số kết quả có thể sử dụng.

Một số định dạng khác (như .f4v) có thể tạo luồng h.264, nhưng không có PPS/SPS và mỗi lát bắt đầu với kích thước thay vì 00 00 00 01 chuỗi.

Tôi muốn tôi có thể trích xuất các dòng thô định dạng phụ lục từ nhiều tệp có thể chứa luồng h.264 hợp lệ. Tôi biết tôi có thể thêm PPS/SPS và thay đổi kích thước thành 00 00 00 01. Nhưng liệu có bất kỳ phần mềm hiện có nào có thể làm được điều này?


Hoặc có thể đảm bảo rằng ffmpeg luôn có thể trích xuất luồng ở định dạng phụ từ tệp .m4v, bất kể phần mềm nào được mã hóa?

+0

Câu hỏi cũ, nhưng là giá trị hằng số PPS và SPS mà bạn chọn ở đâu đó, như trong AVCC? Bởi vì bản thân tôi đang viết mã một trình demuxer thực sự cơ bản bởi vì một thư viện bộ giải mã mà tôi đang sử dụng không demux, và tôi muốn đảm bảo luồng mà tôi đang xây dựng lại sẽ hoạt động. –

Trả lời

11

Những gì bạn có thể tìm cho là bộ lọc h264_mp4toannexb bitstream, gọi với tùy chọn -bsf dòng lệnh:

ffmpeg -i {some file} -vcodec copy -bsf h264_mp4toannexb -an -f {rawvideo|h264|whatever} out.h264 

Xin lưu ý rằng nếu phiên bản của FFmpeg là một chút cũ, bạn có thể cần phải sử dụng -vbsf thay vì -bsf (tùy chọn được đổi tên gần đây).

+0

Có thông số nào để chỉ định luồng cần trích xuất (nếu MP4 chứa nhiều luồng tiểu học H264) không? –

+0

Lưu ý: tập tin kết quả có thể được xem bằng 'ffplay out.h264', nhưng không phải là' vlc out.h264' cho VLC 2.2.1. –

Các vấn đề liên quan