FFmpeg ব্যবহার করে অডিও এবং ভিডিও রেকর্ড করুন


1

আমি FFmpeg ব্যবহার করে একই সময়ে অডিও এবং ভিডিও রেকর্ড করার চেষ্টা করেছি। তবে বেশ কয়েকটি সমস্যা দেখা দিয়েছে। আমার কোডটি এখানে:

ffmpeg -f alsa -ar 24000 -i plughw:1 -acodec aac -strict experimental -f video4linux2 -y -r 4 -i /dev/video0 -vf "drawtext=fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf:expansion=strftime:text='%Y-%m-%d %H\\:%M\\:%S': fontcolor=white:box=1:boxcolor=black@0.8:x=w-text_w:y=h-line_h" -vframes 20 -vcodec mpeg4 out.mp4

এবং আমি যে ফলাফলটি অনুলিপি করেছি তা নীচে প্রদর্শিত হবে:

ffmpeg version N-61372-g1306359 Copyright (c) 2000-2014 the FFmpeg developers
  built on Mar 19 2014 22:59:34 with gcc 4.6 (Debian 4.6.3-14+rpi1)
  configuration: --enable-cross-compile --cross-prefix= --arch=armel --target-os=linux --prefix=/usr --enable-gpl --enable-libfreetype --enable-nonfree --enable-libaacplus --extra-cflags=-I/usr/include --extra-ldflags=-L/usr/lib --extra-libs=-ldl
  libavutil      52. 66.101 / 52. 66.101
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 34.101 / 55. 34.101
  libavdevice    55. 11.100 / 55. 11.100
  libavfilter     4.  3.100 /  4.  3.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Guessed Channel Layout for  Input Stream #0.0 : stereo
Input #0, alsa, from 'plughw:1':
  Duration: N/A, start: 1395351824.134003, bitrate: 768 kb/s
    Stream #0:0: Audio: pcm_s16le, 24000 Hz, stereo, s16, 768 kb/s
[video4linux2,v4l2 @ 0x21c1840] The driver changed the time per frame from 1/4 to 1/5
Input #1, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 15130.155369, bitrate: 24576 kb/s
    Stream #1:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 24576 kb/s, 5 fps, 5 tbr, 1000k tbn, 1000k tbc
[Parsed_drawtext_0 @ 0x21c14f0] expansion=strftime is deprecated.
libaacplus: bad aac setting: br:128000, AACch:2, AACsr:24000
[libaacplus @ 0x21c6370] libaacplus doesn't support this output format!
Output #0, mp4, to 'out.mp4':
    Stream #0:0: Video: mpeg4, yuv420p, 640x480, q=2-31, 200 kb/s, 90k tbn, 4 tbc
    Stream #0:1: Audio: aac, 24000 Hz, stereo, s16, 128 kb/s
Stream mapping:
  Stream #1:0 -> #0:0 (rawvideo -> mpeg4)
  Stream #0:0 -> #0:1 (pcm_s16le -> libaacplus)
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height

এটি দেখায় যে libaacplus doesn't support this output format!। আমি এমপিজিতে আউটপুট ফর্ম্যাটটি পরিবর্তন করার সময় এটি খুব ভালভাবে কাজ করেছিল। তবে চূড়ান্ত আউটপুট ফাইলটিতে কোনও শব্দ নেই। কোন অংশগুলি ভুল হয় তা আমি নিশ্চিত নই। কেউ আমাকে সাহায্য করতে পারে?

কি libfaacসমর্থন mp4?


লাইবাাকপ্লাস হ'ল একটি এএসি-এইচ এনকোডার। আপনি কি নিশ্চিত যে আপনি এটি চান? আপনি আউটপুট দেখাতে পারেন: ffmpeg -h encoder=libaacplus?
লগন

@ লর্ডনেকবার্ড উত্তর দেওয়ার জন্য আপনাকে ধন্যবাদ। আউটপুটটি Threading capabilities:no Supported sample format:s16 flt Supported channel layouts: mono stereoআমি যা চাই তা একটি এমপি 4 ফাইল এতে ভিডিও এবং অডিও সহ রেকর্ড করে।
ভ্যাফেন্সি

@ লর্ডনেকবার্ড বিটিডাব্লু, এর অর্থ কি এমপি 4 সমর্থিত নয় বা অডিও কোডেক? আমিও চেষ্টা -acodec pcm_s16leকরেছি এবং একই সমস্যা পেয়েছি।
ভ্যাফেন্সি

আমি যতদূর জানি পিসিএম, বা কমপক্ষে সেই রূপটি এমপি 4 তে সমর্থিত নয়।
লগন

উত্তর:


1

বিকল্প স্থান নির্ধারণের বিষয়গুলি:

ffmpeg [global options] [input options] -i input [output options] output

আপনি আপনার v4l2 ডিভাইসের জন্য একটি ইনপুট বিকল্প হিসাবে ffmpegব্যবহার করতে বলেছেন -acodec aac -strict experimental, কিন্তু এটি উপেক্ষা করা হয়েছিল। যেহেতু ffmpegঅন্যান্য সমর্থিত এনকোডারদের দেশীয় এএসি এনকোডারটির তুলনায় অগ্রাধিকার দেবে এটি এটি লাইবাাকপ্লাস বেছে নিয়েছে যা আপনি এটি সরবরাহ করেছেন এমন বিকল্পগুলির সাথে সামঞ্জস্যপূর্ণ নয়। এটি একটি এএসি-এইচ এনকোডার, তবে আমি ধরে নিচ্ছি যে আপনি একটি সাধারণ এএসি-এলসি ফর্ম্যাট চান। দেখুন FFmpeg এবং এএসি এনকোডিং গাইড আরো বিস্তারিত জানার জন্য।

আপনাকে -acodec aac -strict experimentalআউটপুট বিকল্প হিসাবে স্থানান্তর করতে হবে:

ffmpeg -f alsa -ar 24000 -i plughw:1 -f v4l2 -r 4 -i /dev/video0 -vf "drawtext=fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf:expansion=strftime:text='%Y-%m-%d %H\\:%M\\:%S': fontcolor=white:box=1:boxcolor=black@0.8:x=w-text_w:y=h-line_h" -vframes 20 -vcodec mpeg4 -acodec aac -strict experimental out.mp4

উজ্জ্বল। এটা কাজ করেছে! তোমাকে অনেক ধন্যবাদ. দুঃখিত যে আমি এই উত্তরটি ভোট দিতে পারি না কারণ আমার নিম্ন খ্যাতি।
ভ্যাফ্যানসি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.