ffmpeg: Tidak dapat menemukan parameter codec untuk streaming 0 (Video: h264) ukuran tidak ditentukan


9

Saya mencoba mengonversi video dari .raw ke .mp4. Untuk alasan ini saya mengunduh, membangun dan menginstal x264 dan ffmpeg. Namun, perintah:

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

gagal dengan kesalahan (ditunjukkan pada gambar di bawah). Apakah ada cara untuk memperbaikinya?

masukkan deskripsi gambar di sini

Perintah yang saya jalankan:

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

bisakah Anda memposting output ini ffmpeg -i output.raw:, dengan asumsi Anda mencoba untuk mengkonversi output.raw. Juga jika Anda mencoba ffmpeg -i output.raw -vcodec libx264 -pix_fmt yuv420p output.mp4apa output konsol?
— Rajib

Terima kasih untuk balasan Anda. Kedua output persis sama, seperti yang diedit di atas. Apakah Anda pikir ada masalah dalam penyandian, atau dalam file saat merekam video?
— dempap

Dari mana Anda output.rawberasal dan bagaimana Anda membuatnya?
— slhck

Dengan mengeksekusi ./capture -f -c 100 -o > output.raw. capture.c diunduh dari: linuxtv.org/downloads/v4l-dvb-apis/capture-example.html .
— dempap

Jawaban:


0

Input Anda sama sekali bukan aliran H264, namun Anda mengatakan ffmpeg itu adalah stream.

Anda perlu memberi tahu ffmpeg apa sebenarnya itu: aliran v4l2 dalam format mjpeg atau yuyv (tergantung pada format apa kamera Anda diatur pada saat pengambilan, dari dua yang terdaftar oleh v4l2-ctl --list-formats). Jika Anda ingin ffmpeg melakukan transkode ke h264, Anda juga harus mengatakannya.

Jika inputnya adalah frame YUYV mentah, Anda ingin:

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

Ganti 640x480 dan 25 dengan dimensi dan framerate video Anda.

Jika inputnya adalah MJPEG, Anda harus bisa meninggalkan -fdan ffmpeg harus mencari tahu:

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

Kebetulan, Anda tidak perlu alat tangkap lain; ffmpeg dapat menangkap dari perangkat v4l2:

ffmpeg -f v4l2 -r 25 -s:v 640x480 -i /dev/video0 -c:v libx264 output.mp4
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.