ffmpeg: Không thể tìm thấy tham số codec cho luồng 0 (Video: h264) kích thước không xác định


9

Tôi cố gắng chuyển đổi video từ .raw sang .mp4. Vì lý do này, tôi đã tải xuống, xây dựng và cài đặt cả x264 và ffmpeg. Tuy nhiên, lệnh:

ffmpeg -f h264 -i output.raw -vcodec copy output.mp4

lỗi với lỗi (hiển thị trong hình dưới đây). Có cách nào để khắc phục điều này?

nhập mô tả hình ảnh ở đây

Các lệnh tôi cũng chạy:

1

root@beagleboard:/# v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'YUYV'
        Name        : YUV 4:2:2 (YUYV)

        Index       : 1
        Type        : Video Capture
        Pixel Format: 'MJPG' (compressed)
        Name        : MJPEG

2

root@beagleboard:/dev# v4l2-ctl --set-fmt-video=pixelformat=0

bạn có thể chỉ đăng đầu ra của cái này không: ffmpeg -i output.rawgiả sử bạn đang cố gắng chuyển đổi output.raw. Ngoài ra nếu bạn thử ffmpeg -i output.raw -vcodec libx264 -pix_fmt yuv420p output.mp4đầu ra giao diện điều khiển là gì?
Rajib

Cảm ơn vì đã trả lời. Cả hai đầu ra đều giống hệt nhau, như được chỉnh sửa ở trên. Bạn có nghĩ rằng có một vấn đề trong mã hóa, hoặc trong tập tin trong khi quay video?
dempap

Bạn đã lấy output.rawtừ đâu và làm thế nào bạn tạo ra nó?
slhck

Bằng cách thực hiện ./capture -f -c 100 -o > output.raw. capt.c được tải xuống từ: linuxtv.org/doads/v4l-dvb-apis/capture-example.html .
dempap

Câu trả lời:


0

Đầu vào của bạn đơn giản không phải là luồng h264, nhưng bạn đang nói với ffmpeg nó là một luồng.

Bạn cần nói cho ffmpeg biết nó thực sự là gì: một luồng v4l2 ở định dạng mjpeg hoặc yuyv (tùy thuộc vào định dạng mà máy ảnh của bạn được đặt ở thời điểm chụp, trong hai định dạng được liệt kê bởi v4l2-ctl --list-formats). Nếu bạn muốn ffmpeg chuyển mã nó thành h264, bạn cũng cần nói với nó điều đó.

Nếu đầu vào là khung YUYV thô, bạn muốn:

ffmpeg -f rawvideo -pix_fmt yuyv422 -s:v 640x480 -r 25 -i output.raw -c:v libx264 output.mp4

Thay thế 640x480 và 25 bằng kích thước và tốc độ khung hình của video của bạn.

Nếu đầu vào là MJPEG, bạn sẽ có thể bỏ qua -fvà ffmpeg sẽ tìm ra nó:

ffmpeg -i output.raw -c:v libx264 output.mp4

Ngẫu nhiên, bạn không cần một công cụ chụp ảnh khác; ffmpeg có thể chụp từ các thiết bị v4l2 tốt:

ffmpeg -f v4l2 -r 25 -s:v 640x480 -i /dev/video0 -c:v libx264 output.mp4
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.