ffmpeg: ไม่สามารถหาพารามิเตอร์ตัวแปลงสัญญาณสำหรับสตรีม 0 (วิดีโอ: h264) ขนาดที่ไม่ได้ระบุ


9

ฉันพยายามแปลงวิดีโอจาก. raw เป็น. mp4 ด้วยเหตุนี้ฉันจึงทำการดาวน์โหลดสร้างและติดตั้งทั้ง x264 และ ffmpeg อย่างไรก็ตามคำสั่ง:

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

ล้มเหลวด้วยข้อผิดพลาด (แสดงในภาพด้านล่าง) มีวิธีแก้ไขปัญหานี้หรือไม่?

ป้อนคำอธิบายรูปภาพที่นี่

คำสั่งที่ฉันใช้:

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

คุณอาจจะเพียงแค่แสดงผลลัพธ์ของนี้: สมมติว่าคุณกำลังพยายามที่จะแปลงffmpeg -i output.raw output.rawนอกจากนี้ถ้าคุณลองffmpeg -i output.raw -vcodec libx264 -pix_fmt yuv420p output.mp4ใช้เอาต์พุตคอนโซลคืออะไร
Rajib

ขอบคุณสำหรับการตอบกลับของคุณ. เอาต์พุตทั้งสองเหมือนกันทุกประการเหมือนกับที่แก้ไขข้างต้น คุณคิดว่ามีปัญหาในการเข้ารหัสหรือในไฟล์ขณะที่จับภาพวิดีโอหรือไม่?
dempap

คุณได้รับoutput.rawมาจากไหนและคุณสร้างมันขึ้นมาได้อย่างไร
slhck

./capture -f -c 100 -o > output.rawโดยการดำเนินการ capture.c ดาวน์โหลดได้จาก: linuxtv.org/downloads/v4l-dvb-apis/capture-example.html
dempap

คำตอบ:


0

อินพุตของคุณไม่ใช่แค่สตรีม h264 แต่คุณกำลังบอก ffmpeg ว่าเป็นหนึ่ง

คุณต้องบอก ffmpeg ว่ามันคืออะไร: สตรีม v4l2 ในรูปแบบ mjpeg หรือ yuyv (ขึ้นอยู่กับรูปแบบที่กล้องของคุณตั้งค่าไว้ในขณะที่ถ่ายภาพโดยมีการระบุไว้สองรายการv4l2-ctl --list-formats) หากคุณต้องการให้ ffmpeg แปลงรหัสเป็น h264 คุณต้องบอกด้วยเช่นกัน

หากอินพุตเป็นเฟรม YUYV แบบ raw คุณต้องการ:

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

แทนที่ 640x480 และ 25 ด้วยขนาดและเฟรมวิดีโอของคุณ

หากอินพุตคือ MJPEG คุณควรจะสามารถออกไป-fและ ffmpeg ควรจะหามัน:

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

อนึ่งคุณไม่จำเป็นต้องใช้เครื่องมือจับภาพอื่น ffmpeg สามารถจับภาพจากอุปกรณ์ v4l2 ได้:

ffmpeg -f v4l2 -r 25 -s:v 640x480 -i /dev/video0 -c:v libx264 output.mp4
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.