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?
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
ffmpeg -i output.raw
:, dengan asumsi Anda mencoba untuk mengkonversioutput.raw
. Juga jika Anda mencobaffmpeg -i output.raw -vcodec libx264 -pix_fmt yuv420p output.mp4
apa output konsol?output.raw
berasal dan bagaimana Anda membuatnya?./capture -f -c 100 -o > output.raw
. capture.c diunduh dari: linuxtv.org/downloads/v4l-dvb-apis/capture-example.html .Jawaban:
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:
Ganti 640x480 dan 25 dengan dimensi dan framerate video Anda.
Jika inputnya adalah MJPEG, Anda harus bisa meninggalkan
-f
dan ffmpeg harus mencari tahu:Kebetulan, Anda tidak perlu alat tangkap lain; ffmpeg dapat menangkap dari perangkat v4l2:
sumber