ভিডিও ক্যাপচারের জন্য পনির থেকে ভাল কিছু?


56

আমার ওয়েবক্যাম থেকে আমার কিছু ভিডিও রেকর্ড করা দরকার, এবং পনির কাজ করার সময় এটিতে সেটিংসের অভাব রয়েছে এবং কেবল ওয়েটার ইত্যাদি পূর্ণ ওয়েবম ফর্ম্যাটটিকে আউটপুট দেয় etc.

কোনও বিকল্প খুঁজে পাওয়া যাচ্ছে না ...

উত্তর:


57

গুভকভিউয়ের লক্ষ্য লিনাক্স ইউভিসি ড্রাইভার দ্বারা সমর্থিত ডিভাইসগুলি থেকে ভিডিও ক্যাপচার এবং দেখার জন্য একটি সাধারণ জিটিকে ইন্টারফেস সরবরাহ করা, যদিও এটি কোনও v4l2 সামঞ্জস্যপূর্ণ ডিভাইসের সাথেও কাজ করা উচিত।

প্রকল্পটি ভিডিও রেন্ডারিংয়ের জন্য লভভিউয়ের উপর ভিত্তি করে তৈরি করা হয়েছে তবে সমস্ত নিয়ন্ত্রণ একটি জিটিকে 2 ইন্টারফেস ব্যবহার করে তৈরি করা হয়।

গুভকভিউ (সংস্করণ ০.৯.৯) থেকে একটি নিয়ন্ত্রণ উইন্ডো রয়েছে, (কনসোল থেকে guvcview --control_only), এটি অন্যান্য অ্যাপ্লিকেশনগুলিতে ইকিগা, পনির, এমপ্লেয়ার, স্কাইপ ...

শ্রুতি.

গুভকভিউ অডিও সমর্থনটি Portaudio লাইব্রেরির উপর ভিত্তি করে, সংস্করণ 0.9.3 অবধি ব্লকিং এপিআই অডিও ক্যাপচারের জন্য ব্যবহৃত হয়েছিল, যেহেতু সংস্করণ 0.9.4 এর পরিবর্তে কলব্যাক পদ্ধতিটি ব্যবহৃত হয়, এটি আরও ভাল পারফরম্যান্স সরবরাহ করে, এটিও পছন্দসই পদ্ধতি Portaudio API।

Portaudio দ্বারা সমর্থিত সমস্ত ইন্টারফেস (ALSA, OSD, জ্যাক, ...) guvcview এ উপলব্ধ হওয়া উচিত। কেবল নিশ্চিত হয়ে নিন যে পছন্দসই ইন্টারফেসগুলি সক্ষম সহ পোর্টডাওডিও সংকলিত হয়েছিল।

ইউভিসি ডায়নামিক নিয়ন্ত্রণগুলি।

লিনাক্স ইউভিসি ড্রাইভারের এক্সটেনশন কন্ট্রোলগুলির জন্য একটি বাস্তবায়ন রয়েছে (এগুলি বিক্রেতার নির্দিষ্ট নিয়ন্ত্রণ এবং এটি ইউভিসি স্পেসে সমর্থিত)), তাদের ডায়নামিক নিয়ন্ত্রণ বলা হয় কারণ এগুলি চালকের মধ্যে অবশ্যই গতিযুক্ত হওয়া উচিত।

আজ অবধি কেবল লজিটেক তাদের ইউভিসি ওয়েবক্যাম এক্সটেনশন নিয়ন্ত্রণগুলির জন্য চশমা সরবরাহ করেছে, এগুলি গুভভিউ দ্বারা সমর্থিত।

নতুন ড্রাইভার সংশোধনগুলিতে ড্রাইভারগুলিতে এই নিয়ন্ত্রণগুলি যুক্ত করতে অ্যাডমিনের অধিকারগুলির প্রয়োজন হয়, সুতরাং মূলত দুটি সমাধান রয়েছে:

  1. sudoপ্রতি সেশন প্রতি কমপক্ষে একবার রুট হিসাবে ব্যবহার (গুটিগভিউ ) ব্যবহার করুন (1.2 ) সংস্করণ থেকে 1.2.0 সংস্করণটি --add_ctrlsসম্পূর্ণরূপে গুভকভিউটি চালু করার প্রয়োজনীয়তা এড়ানো বিকল্পের সাহায্যে এটি করতে পারেন

  2. libwebcam ইনস্টল করুন এই সফ্টওয়্যারটিতে একটি udev স্ক্রিপ্ট রয়েছে যা আপনার লজিটেক ক্যামেরায় প্রয়োজনীয় নিয়ন্ত্রণ যুক্ত করা উচিত।

পিপিএর মাধ্যমে উবুন্টু 12.04 এ গুভকভিউ ইনস্টল করুন

sudo add-apt-repository ppa:pj-assis/ppa
sudo apt-get update
sudo apt-get install guvcview

1
এই অ্যাপটি দুর্দান্ত। বিটিডাব্লু - বেশিরভাগ নিয়ন্ত্রণগুলি কিছু না করেই ভালভাবে কাজ করেছিল।
এইচডিভ

পনির কেবল আমার পক্ষে কাজ করেনি, গুভভিউ পুরোপুরি কাজ করেছিল। কেবলমাত্র জিনিসটি সঠিক অডিও ইনপুট উত্সটি খেলে এক মিনিট সময় নিয়েছিল, তবে এটি কাজ করার জন্য ম্যানুয়ালটি পড়ার বা কোনও ক্লাইম যাদু করার দরকার হয়নি।
18-22

2
সমস্ত দুর্দান্ত গ্যাভিউভিউয়ের দেখার জন্য, এটি বর্তমানে বাগস্লাঞ্চপ্যাড.নেট / বুন্টু /+ সোর্স / গুভকভিউ /+ বাগ / 1558060 (হিমায়িত ভিডিও) দ্বারা নষ্ট হয়েছে (কমপক্ষে 16.04 এ )। পরিবর্তে, আমি থেকে mencoder লাইন ব্যবহার করছি commandlinefu.com/commands/view/3498/... (প্রস্থ & উচ্চতা সামঞ্জস্য) এবং flawlessly কাজ করে।
মিগুয়েভ

@ মিগিয়েভ এই সংস্করণটি সমস্যার সমাধান করছে বলে মনে হচ্ছে।
স্কিপি লে গ্র্যান্ড গৌরু

"গুভকভিউ ত্রুটি ডিভাইসে কোনও ভিডিও স্ট্রিম শুরু করতে পারেনি" জিইউভিসিভিউ (1): গুভকভিউ ত্রুটিটি অবৈধ রেজোলিউশন সূচক GUVCview: অবৈধ রেজোলিউশন সূচী বিভাগের ত্রুটি (কোর ডাম্পড)
অ্যারন ফ্রাঙ্ক

14

আপনার যদি নতুন অ্যাপের প্রয়োজন হয় তবে গুভভিউগুভকভিউ ইনস্টল করুন ভাল।

https://launchpad.net/guvcview


+1, পনিরের অডিও রেকর্ডিংয়ের সমস্যার কারণে এই অ্যাপ্লিকেশনটি কেবল চেষ্টা করে দেখুন। একটি ট্রিট কাজ করেছেন!
অ্যাশ

11

এই প্রশ্নের অংশগুলি এই প্রশ্নের উত্তর থেকে আসে: ভিএইচএস টেপগুলি থেকে রেকর্ড

আমাদের নিশ্চিত করতে হবে যে সফ্টওয়্যারটি সঠিক ডিভাইস থেকে সঠিক ডেটা সংগ্রহ করছে। টার্মিনালে একটি জিজ্ঞাসা ফেলে দিন যা আমাদের কম্পিউটারের সাথে সংযুক্ত কতগুলি ডিভাইস, যা চিত্রগুলি সংগ্রহ করতে ব্যবহার করতে, টার্মিনালে এই কমান্ডটি ব্যবহার করতে পারে তা দেখতে দেয়:

ls -l /dev/video*

ফলাফলগুলি এর মতো হওয়া উচিত:

geppettvs@DYLAN:~$ ls -l /dev/video*
crw-rw----+ 1 root video 81, 0 2012-04-17 19:53 /dev/video0
crw-rw----+ 1 root video 81, 1 2012-04-17 19:53 /dev/video1
crw-rw----+ 1 root video 81, 2 2012-04-18 17:54 /dev/video2
geppettvs@DYLAN:~$ 

আমার ক্ষেত্রে, আমার কাছে 3 টি ভিডিও ডিভাইস রয়েছে যার মধ্যে একটি ইউএসবি টিভি টিউনার যা আমি সরাসরি টিভি শো / ভিটিআর / ভিসিআর / আরএফ-ডিভিডি / ভিডিও রূপান্তরকারী এবং অন্যান্য আরএফ সিগন্যালগুলি দেখার / রেকর্ডিংয়ের জন্য ব্যবহার করি।

অন্যান্য ডিভাইসগুলি হ'ল ইউএসবি ওয়েবক্যাম কম্পিউটারে ইউএসবি স্লটগুলির সাথে সংযুক্ত।

যদি আপনার ওয়েবক্যামটিতে একটি মাইক্রোফোন বৈশিষ্ট্যযুক্ত থাকে তবে অ্যান্ড্রিয়াস শ্যাচালক দ্বারা টিভিক্যাপ-লিপিটি ব্যবহার করে অডিও এবং ভিডিও উভয়ই রেকর্ড করা যেতে পারে , আপনার সুবিধার জন্য আমি এখানে কোন কোডটি রেখেছি:

#!/bin/bash
#
#  tvcap-script by Andreas Schalk, easycap.blogspot.com (Dec. 2011)
#  This script is based an a template TV-script from Jose Catre-Vandis (Jan 2006).
#  The ascii artwork is based on a template i found here: http://www.retrojunkie.com/asciiart/electron/tv.txt
#  Contact: easycapdc60-blogspot@yahoo.de
#-----------------------------------------------------------------------------
#
#  FUNCTION: This script provides Zenity menues for viewing an capturing video with a tv-card on Linux.
#
#  Supported programs: MPlayer, MEncoder, VLC, Tvtime, Cheese und Sox
# 
#-----------------------------------------------------------------------------
#  
#  Basic options:
#
#  Change the following parameters for viewing/ capturing according to your needs
#
#-----------------------------------------------------------------------------
VERBOSE=1   # if '0', this script does not show messages window and does not ask for norm and input number anymore
NORM="PAL"  # preselect tv norm 'PAL' or 'NTSC'
INPUT_NR=0      # preselect input number of your easycap where video source is plugged in
input_width=720     # preselect width an height of video source (mplayer, vlc, mencoder)
input_height=576    # other possible combinations: 640/480; 320/240 
ASPECT=169          # '169' (16:9) or '43' (4:3); this value affects video playback with mplayer or vlc only!
FREQ="48000"        # on soundproblems reduce audio frequency (44100 oder 32000 oder 8000)
TV_INPUT="no"       # if 'yes' the analogue antenna input of the tv-card will be used (mplayer only)
CHAN="chanlist=europe-west:channel=60"      # channel setting (nur mplayer/ mencoder) the analogue antenna input of the tv-card is used
NORM="PAL"          # preselect TV-norm 'PAL' oder 'NTSC'
INPUT_NR=1          # preselct the Input on the TV-card, where the videosource is plugged in ('0' normally is the antenna, '1' the first CVBS ...
#-----------------------------------------------------------------------------

MESSAGE=()
R_MESSAGE=()
EXITCODE=0

#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
#   test videodevices
##-----------------------------------------------------------------------------

declare -a VIDEO_DEV

VIDEO_DEV=( TRUE    none
            FALSE   none
            FALSE   none
            FALSE   none
            ) 
i1=0;
i2=0;
while `test -e "/dev/video${i1}"`; do
  VIDEO_DEV[$i2+1]="/dev/video${i1}"; 
  i1=$[$i1+1];
  i2=$[$i2+2];
done
if [ "xnone" = "x${VIDEO_DEV[1]}" ]; then 
  zenity  --error --timeout=5 --text "Cannot find /dev/video0!\n Script ends in 5 seconds" --title "No videodevice!";
  exit 1;
fi

if [ "x${VIDEO_DEV[$i2+1]}" = "xnone" ];  then
    VIDEO_DEV[$i2]="" && VIDEO_DEV[$i2+1]="" && VIDEO_DEV[$i2+2]="" && VIDEO_DEV[$i2+3]="" && VIDEO_DEV[$i2+4]="" && VIDEO_DEV[$i2+5]="";
fi

DEV_VIDEO=$(zenity --list --text "Select videodevice" --radiolist --column "Choice" --column "Device" ${VIDEO_DEV[@]}) || exit 0 

if [ ${VERBOSE} = 1 ]; then
#-----------------------------------------------------------------------------
#  select TV norm
#-----------------------------------------------------------------------------
title="Select tv norm"
NORM=`zenity --title="$title" --list --radiolist --column="Choice" \
    --column="Norm" --column="Description" \
    TRUE "PAL" "PAL Norm" \
    FALSE "NTSC" "NTSC Norm" \
    ` || exit 0 
fi
#-----------------------------------------------------------------------------
#  select Input number
#-----------------------------------------------------------------------------
title="Select Input NR"
INPUT_NR=`zenity --title="$title" --list --radiolist --column="Choice" \
    --column="Input NR" --column="Description" \
    TRUE "0" "Input 1 (TV)" \
    FALSE "1" "Input 2" \
    FALSE "2" "Input 3" \
    FALSE "3" "Input 4" \
    FALSE "4" "Input 5" \
    FALSE "5" "Input 6"
    ` || exit 0 
#-----------------------------------------------------------------------------


#-----------------------------------------------------------------------------
#  Check if snd_usb_audio module is loaded
#-----------------------------------------------------------------------------
SND_USB=`lsmod | grep snd_usb_audio | wc -l`
if  [ "${SND_USB}" -ge "1" ]; then
#  MESSAGE=("${MESSAGE[@]}" "\nNOTE: snd_usb_audio module was loaded and may conflict with your USB capture device")
   zenity  --info --text "NOTE: The snd_usb_audio module was loaded\nand may conflict with your USB capture device.\n \nIf sound problems appear,\nplug out your USB capturedevice and run\n rmmod snd_usb_audio \nas root in the terminal!" --title "Snd_usb_audio module loaded!"
fi

#-----------------------------------------------------------------------------
# test and select soundcard
#-----------------------------------------------------------------------------

if `test ! -e /dev/dsp` && [ -z "`ls -1 /proc/asound`" ]; then
    if_audio="no";
    echo "No soundcard detected";
    MESSAGE=("${MESSAGE[@]}" "Note: No soundcard can be found!\nSound is not supported.\n");
else
if_audio="yes"
declare -a SOUND_DEV

SOUND_DEV=( FALSE   /dev/dsp    OSS
            FALSE   card1   ALSA    
            TRUE    card2   ALSA
            FALSE   card3   ALSA
            ) 

test ! -e /dev/dsp && echo "No dsp" && SOUND_DEV[0]="" && SOUND_DEV[1]="" && SOUND_DEV[2]=""

ALSA_CARD=$(cat /proc/asound/cards | cut -d":" -f1 -s)
declare -a ALSA_CARDS
ALSA_CARDS=(${ALSA_CARD})

i5=1
for P in ${ALSA_CARDS[@]}; do
    ALSA_NAME=$(echo ${ALSA_CARDS[$i5]} | tr -d [=[=] );
    SOUND_DEV[$i5+3]=$ALSA_NAME
    if [ "x${ALSA_NAME}" = "x" ];  then
    SOUND_DEV[$i5+2]="" && SOUND_DEV[$i5+3]="" && SOUND_DEV[$i5+4]=""
    fi
    i5=$[$i5+3];
done
fi

DEV_AUDIO=$(zenity --list --text "Select soundcard" --radiolist --column "Choice" --column "Device" --column "Type" ${SOUND_DEV[@]}) || exit 0 

if [ $DEV_AUDIO = "/dev/dsp" ]; then 
    AUDIO_TYPE="oss"
    else
    AUDIO_TYPE="alsa"
fi
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
#   test, if devicenodes are read- and writable for unprivileged users
#-----------------------------------------------------------------------------

if [ -r ${DEV_VIDEO} ] && [ -w ${DEV_VIDEO} ]; then
MESSAGE=("${MESSAGE[@]}" "\nSUCCESS! ${DEV_VIDEO} is read- and writable!\n")
elif [ -e ${DEV_VIDEO} ]; then
zenity --info --text "Cannot access ${DEV_VIDEO}!\nRun 'sudo chmod a+rw ${DEV_VIDEO}'\nin the terminal!" --title "Message"
EXITCODE=1
fi

    if [ -r ${DEV_AUDIO} ] && [ -w ${DEV_AUDIO} ]; then
    MESSAGE=("${MESSAGE[@]}" "\nSUCCESS! ${DEV_AUDIO} is read- and writable!")
    elif [ -e ${DEV_AUDIO} ]; then
    zenity --info --text "\nCannot access ${DEV_AUDIO}!\nRun 'sudo chmod a+rw ${DEV_AUDIO}'\nin the terminal!" --title "Message"
    MESSAGE=("${MESSAGE[@]}" "\n\nCannot access ${DEV_AUDIO}!\nRun 'sudo chmod a+rw ${DEV_AUDIO}'\nin the terminal!!")
    if_audio="no"
    fi
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
#  find executable programs
#-----------------------------------------------------------------------------
PROG_LIST=( TRUE    vlc     #
            FALSE   mplayer     #
            FALSE   cheese      #
            FALSE   tvtime      #
            FALSE   mencoder    #
            FALSE   sox         #
            ) 

PROGS=(vlc mplayer cheese tvtime mencoder sox)
i4=0
for P in ${PROGS[@]}; do
            PROG=`which $P`
            if [ "x" = "x${PROG}" ] || [ ! -x ${PROG} ]; then
            echo "Cannot find or execute $P. Is t installed?"
            MESSAGE=("${MESSAGE[@]}" "\nCannot find or execute $P. Is it installed?")
            PROG_LIST[$i4]=""
            PROG_LIST[$i4+1]=""
                if [ "${PROG_LIST[11]}" = "" ]; then
                echo "Sox is needed for sound with tvtime!"
                MESSAGE=("${MESSAGE[@]}" "\nSox is needed for sound with tvtime!")
                fi          
            fi
            i4=$i4+2
done
PROG_LIST[10]=""        # Sox does not show up on list
PROG_LIST[11]=""        #
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
#  messages are displayed and script ends
#-----------------------------------------------------------------------------
if [ ${EXITCODE} = 1 ]; then
    MESSAGE=("${MESSAGE[@]}" "\nScript ends")
fi
echo ${MESSAGE[*]}
#########################
if [ ${VERBOSE} = 1 ]; then
zenity --height="50" --info --text "${MESSAGE[*]}" --title "Messages"
fi

if [ ${EXITCODE} = 1 ]; then
    exit 1
fi
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
#  create logfile
#-----------------------------------------------------------------------------
LOGFILE="./test`echo "${DEV_VIDEO}" | sed -e "s,/dev/,," - `.log"

# echo "Log file is:  ${LOGFILE}"
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
#  zenity list - program choice
#-----------------------------------------------------------------------------

view_cap=$(zenity --list --width=250 --height=400 --text "  ___________\n |  .----------.  o|\n | |   Easy  | o|\n | |   CAP_  | o|\n |_\`-----------´ _|\n   ´\`          ´\`\\nTv-norm: $NORM  Input-Nr:$INPUT_NR\nVideodevice: $DEV_VIDEO $input_width x $input_height \nAudiodevice: $AUDIO_TYPE $DEV_AUDIO $FREQ Hz\nIs audio on? $if_audio\nLogfile: $LOGFILE " --radiolist --column "Choice" --column "program" ${PROG_LIST[@]}) || exit 0

#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
#  mplayer command
#-----------------------------------------------------------------------------
if [ "alsa" = "${AUDIO_TYPE}" ]; then
M_AUDIO="buffersize=16:alsa:amode=1:forcechan=2:audiorate=${FREQ}:adevice=plughw.${DEV_AUDIO}"
elif [ "oss" = "${AUDIO_TYPE}" ]; then
M_AUDIO="adevice=${DEV_AUDIO}"
fi

if [ "$NORM" = "PAL" ]; then
    fps_count=25
else 
    fps_count=30
fi

if [ "$ASPECT" = 169 ]; then
    M_ASPECT="-aspect 1.78"
#   elif [ "$ASPECT" = 43 ]; then
#   M_ASPECT="-aspect 1"
    else
    M_ASPECT=""
    fi

if [ "yes" = "${TV_INPUT}" ]; then
M_VIDEO="${CHAN}"
elif [ "no" = "${TV_INPUT}" ]; then
M_VIDEO="norm=${NORM}:width=${input_width}:height=${input_height}:outfmt=uyvy:device=${DEV_VIDEO}:input=${INPUT_NR}:fps=${fps_count}"
fi

#echo $M_VIDEO
#echo $M_AUDIO
#echo $view_cap

if [ "mplayer" = "${view_cap}" ]; then


if [ "$if_audio" = "yes" ]; then    
1>${LOGFILE} 2>&1 \
mplayer tv:// -tv driver=v4l2:${M_VIDEO}:${M_AUDIO}:forceaudio:immediatemode=0 -hardframedrop ${M_ASPECT} -ao sdl, ${AUDIO_TYPE} -msglevel all=9

elif [ "$if_audio" = "no" ]; then
1>${LOGFILE} 2>&1 \
mplayer tv:// -tv driver=v4l2:${M_VIDEO} -hardframedrop ${M_ASPECT} -msglevel all=9 -nosound
fi
fi
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
#  vlc command
#-----------------------------------------------------------------------------
if [ "vlc" = "${view_cap}" ]; then

    if [ "alsa" = "${AUDIO_TYPE}" ]; then
    V_AUDIO="//plughw:${DEV_AUDIO}"
    elif [ "oss" = "${AUDIO_TYPE}" ]; then
    V_AUDIO="//${DEV_AUDIO}"
    fi

    if [ "$NORM" = "PAL" ]; then
    V_NORM="pal"
    elif [ "$NORM" = "NTSC" ]; then
    V_NORM="ntsc"
    fi

    if [ "$ASPECT" = 169 ]; then
    V_ASPECT="--aspect-ratio=16:9"
    elif [ "$ASPECT" = 43 ]; then
    V_ASPECT="--aspect-ratio=4:3"
    else
    V_ASPECT=""
    fi

1>${LOGFILE} 2>&1 \
vlc -vvv v4l2://${DEV_VIDEO}:input=${INPUT_NR}:width=$input_width:height=$input_height:norm=${V_NORM} ${V_ASPECT} :input-slave=${AUDIO_TYPE}:${V_AUDIO} --demux rawvideo 
fi
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
#  tvtime command
#-----------------------------------------------------------------------------
if [ "tvtime" = "${view_cap}" ]; then
    if [ "alsa" = "${AUDIO_TYPE}" ]; then
    T_AUDIO="-t alsa plughw:${DEV_AUDIO} -s2 -c 2 -r ${FREQ} -s2 -t alsa default"
    elif [ "oss" = "${AUDIO_TYPE}" ]; then
    T_AUDIO="-t raw -s2 ${DEV_AUDIO} -c 2 -r ${FREQ} -s2 -t ossdsp /dev/dsp"
    fi
echo $T_AUDIO
1>${LOGFILE} 2>&1 \
>./tvtime.err
(tvtime -d ${DEV_VIDEO} -i 0 -n "${NORM}" 1>/dev/null 2>>./tvtime.err) &
rc=1
while [ 0 -ne ${rc} ];
do
  tvtime-command run_command "(sox -c 2 -r ${FREQ} ${T_AUDIO} 1>/dev/null 2>>./tvtime.err)" 1>/dev/null 2>>./tvtime.err
  rc=$?
  if [ 0 -eq ${rc} ]; then break; fi
  sleep 0.5
done
fi
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
#  cheese command
#-----------------------------------------------------------------------------
if [ "cheese" = "${view_cap}" ]; then
1>${LOGFILE} 2>&1 \
cheese
fi
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
#  mencoder command - recording section
#-----------------------------------------------------------------------------

if [ "mencoder" = "${view_cap}" ]; then

#Auswahl des Seitenverhältnisses der Aufnahme?
title="Chose aspect of your target file!"
aspect_type=`zenity  --width="400" --height="220" --title="$title" --list --radiolist --column="Click Here" \
    --column="choice" --column="source >> target" \
    TRUE "1" "4:3 > 4:3"\
    FALSE "2" "4:3 > scale=16:9" \
    FALSE "3" "4:3 > crop borders=16:9" \
    ` || exit 0 

if [ "$aspect_type" = "1" ]; then
    crop_scale="scale=640:480"
elif [ "$aspect_type" = "2" ]; then
    crop_scale="scale=720:406"
elif [ "$aspect_type" = "3" ]; then
    crop_scale="crop=720:406:0:72"
fi  

#################################################################################
#Quality?
title="What quality do you want to record at ?"
qual_type=`zenity  --width="380" --height="380" --title="$title" --list --radiolist --column="Click Here" \
    --column="Record Time" --column="Description" \
    FALSE "500" "Passable Quality"\
    FALSE "900" "OK Quality"\
    FALSE "1100" "VHS Quality"\
    TRUE "1300" "SVHS Quality"\
    FALSE "1500" "VCD Quality"\
    FALSE "1800" "SVCD Quality" \
    FALSE "2000" "Very Good Quality"\
    FALSE "2500" "High Quality" \
    FALSE "3000" "Excellent Quality"\
    ` || exit 0

##################################################################################
#How Long?
title="How long do you want to record for ?"
time_type=`zenity  --width="380" --height="500" --title="$title" --list --radiolist --column="Click Here" \
    --column="Record Time" --column="Description" \
    FALSE "00:00:00" "unlimited"\
    TRUE "00:00:30" "30 seconds for testing"\
    FALSE "00:10:00" "0.2 hours"\
    FALSE "00:30:00" "0.5 hours"\
    FALSE "00:45:00" "0.75 hours"\
    FALSE "01:00:00" "1 hour"\
    FALSE "01:15:00" "1.25 hours"\
    FALSE "01:30:00" "1.5 hours" \
    FALSE "01:45:00" "1.75 hours"\
    FALSE "02:00:00" "2 hours" \
    FALSE "02:15:00" "2.25 hours"\
    FALSE "02:30:00" "2.5 hours" \
    FALSE "02:45:00" "2.75 hours"\
    FALSE "03:00:00" "3 hours" \
    FALSE "03:15:00" "3.25 hours" \
    FALSE "03:30:00" "3.5 hours" \
    ` || exit 0

#M_TIME="-endpos $time_type"

#################################################################################
#user must enter a filename
filedate=$(date +%F_%H:%M-%S)
title="Please enter a filename for your recording, no spaces"
file_name=`zenity  --width="480" --height="150" --title="$title" --file-selection --save --confirm-overwrite --filename="tvcap_$filedate"` || exit 0

###########################################################################################
# summary
R_MESSAGE=("${R_MESSAGE[@]}" "\nRecording options:")
R_MESSAGE=("${R_MESSAGE[@]}" "\nRecording audio: $if_audio")
R_MESSAGE=("${R_MESSAGE[@]}" "\nRecording from Input $INPUT_NR - Norm: $NORM $fps_count fps")
R_MESSAGE=("${R_MESSAGE[@]}" "\nCrop and scale options: $crop_scale")
R_MESSAGE=("${R_MESSAGE[@]}" "\nEncoding quality: $qual_type kb/s")
R_MESSAGE=("${R_MESSAGE[@]}" "\nRecording time:$time_type hours")
R_MESSAGE=("${R_MESSAGE[@]}" "\nFile name: $file_name.avi ")

echo ${R_MESSAGE[*]}

if [ ${VERBOSE} = 1 ]; then
zenity --info --text "${R_MESSAGE[*]}" --title "Recording options"
fi
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
#  mencoder line
#-----------------------------------------------------------------------------
if [ "$if_audio" = "yes" ]; then

zenity --info --title="Start recording with audio" --text="Press OK to start."

mencoder tv:// -tv driver=v4l2:norm=$NORM:width=$input_width:height=$input_height:outfmt=uyvy:device=${DEV_VIDEO}:input=${INPUT_NR}:fps=$fps_count:${M_AUDIO}:forceaudio:immediatemode=0 -msglevel all=9 -ovc lavc -ffourcc DX50 -lavcopts vcodec=mpeg4:mbd=2:turbo:vbitrate=$qual_type:keyint=15 -vf pp=lb,$crop_scale -oac mp3lame -endpos $time_type -o $file_name.avi | tee ${LOGFILE} | zenity --progress --pulsate --auto-close --auto-kill --text="Processing Video - length: $time_type H:M:S" 

zenity --info --title="Job complete" --text="The recording is now complete."


elif [ "$if_audio" = "no" ]; then

zenity --info --title="Start recording without audio" --text="Press ok to start recording"
1>${LOGFILE} 2>&1 \
mencoder tv:// -tv driver=v4l2:norm=$NORM:width=$input_width:height=$input_height:outfmt=uyvy:device=${DEV_VIDEO}:input=${INPUT_NR}:fps=$fps_count -msglevel all=9 -nosound -ovc lavc -ffourcc DX50 -lavcopts vcodec=mpeg4:mbd=2:turbo:vbitrate=$qual_type:keyint=15 -vf pp=lb,$crop_scale -endpos $time_type -o $file_name.avi | tee ${LOGFILE} | zenity --progress --pulsate --auto-close --auto-kill --text="Processing Video - length: $time_type H:M:S" 

zenity --info --title="Job complete" --text="The recording is now complete."

fi

fi
exit 1

এই সমস্ত কোডটি কেবল টিভিক্যাপ-স্ক্রিপ্ট.শ নামক একটি ফাইলে অনুলিপি / পেস্ট করুন, কার্যকর করার অনুমতি দিন এবং এটি একটি টার্মিনালে চালান। প্রক্রিয়াটি বেশ সহজ এবং আমি নীচে ব্যাখ্যা করতে যাচ্ছি:

1.- এন্টার টিপানোর পরে, আপনাকে ক্যাপচার উত্সের জন্য জিজ্ঞাসা করা হবে, এবং ডিভাইসের অবস্থানের উপর নির্ভর করা হবে (আগে পরীক্ষা করা হয়েছে), আপনি আমার ক্ষেত্রে থাকতে পারেন- বেশ কয়েকটি ভিডিও উত্স, আমি এর জন্য / dev / video2 ব্যবহার করছি উদাহরণস্বরূপ, যা আমার ইউএসবি টিভি টিউনারকে বোঝায়। নোট করুন যে এই স্ক্রিনশটটি উইন্ডো ডেকরেটারটি পায় নি তবে বিকল্পগুলি এবং "ঠিক আছে" বোতামটি ঠিক সেখানে পাওয়া যাবে।

এখানে চিত্র বর্ণনা লিখুন

২.- এখন আমাদের আদর্শটি নির্ধারণ করা দরকার, মেক্সিকোতে আমরা এনটিএসসি ব্যবহার করি এবং যদি না আপনি স্কয়ার অ্যাসপেক্ট রেশিও সহ কোনও ভিন্ন আদর্শ ব্যবহার করে আপনার ভিডিও ক্যাপচার করতে না চান তবে আপনার পল ব্যবহার করা উচিত নয়, যা আপনার ভিডিওর মানেরটিকে কিছুটা ক্ষতি করতে পারে। এটি আপনি কোথায় থাকেন এবং আপনার দেশের আদর্শের উপরও নির্ভর করে।

এখানে চিত্র বর্ণনা লিখুন

৩.- আমার টিভি টিউনারটিতে বেশ কয়েকটি ইনপুট রয়েছে, আপনার ক্যাপচারের জন্য কোনটি সেরা তা নির্ধারণ করার জন্য আপনার প্রয়োজন হিসাবে বিভিন্ন পরিমাণের ইনপুট থাকতে পারে, এটি পরীক্ষা করে দেখতে এবং যতগুলি পরীক্ষা চালানো যেতে পারে। আমি টিভি ব্যবহার করে এমন একটি ব্যবহার করতে যাচ্ছি। (ইনপুট 1 (টিভি))

এখানে চিত্র বর্ণনা লিখুন

-. - এরপরে, সাউন্ড ক্যাপচারের সময় কিছু ভুল হয়ে গেলে (অডিও এবং ভিডিও উভয়ই একবারে ক্যাপচার হতে চলেছে তবে যদি আপনার snd_usb_audio মডিউলটি ইতিমধ্যে লোড করা হয়ে থাকে তবে এটি ক্র্যাশ হতে পারে) আপনাকে সমাধানের জন্য (বা না) সতর্ক করা হতে পারে অডিও ক্যাপচার এবং এভাবে ভিডিও ক্যাপচার নিজেই)

এখানে চিত্র বর্ণনা লিখুন

৫.- আমার টিভি টিউনারটিতে বেশ কয়েকটি অডিও ইনপুটগুলির জন্য সমর্থন রয়েছে, যা আমার মাদারবোর্ডে এমবেড করা সাউন্ড ডিভাইসের সাথে সংহতকরণ (অক্স-লাইনে একটি কেবল সংযোগের মাধ্যমে এবং সাউন্ড মিক্সার দ্বারা নিয়ন্ত্রিত) অন্তর্ভুক্ত করে, আপনি যা পরীক্ষা করতে পারেন এটি সবচেয়ে ভাল আপনি এবং মনে রাখবেন যে ডিফল্টগুলি সাধারণত "আপনার জন্য সেরা" হিসাবে চিহ্নিত হয়।

এখানে চিত্র বর্ণনা লিখুন

-.- যদি সবকিছু ঠিকঠাক হয়, আপনি একটি বার্তা সহ একটি ছোট উইন্ডো দেখতে পাবেন যা এই জাতীয় কিছু পড়বে:

"সাফল্য! / দেব / ভিডিও 2 পঠনযোগ্য এবং লেখার যোগ্য!"

চালিয়ে যেতে "ওকে" ক্লিক করুন।

এখানে চিত্র বর্ণনা লিখুন

-.- এর পরে, আপনি আপনার সিস্টেমে উপলব্ধ রেকর্ডিং বিকল্পগুলির তালিকা থেকে চয়ন করতে পারেন। আপনি পরবর্তী স্ক্রিনশটে যা দেখতে পাবেন তা আমি ইনস্টল করেছি। যে কেউ বৈধ এবং মানটি বড় পরিবর্তনগুলি প্রতিফলিত করে না তবে আমি ব্যক্তিগতভাবে মেনকোডার পছন্দ করি । আপনার যদি এইগুলির কোনও ইনস্টল না থাকে তবে আপনার পরীক্ষা চালানোর জন্য আপনার এটি ইনস্টল করা উচিত।

এখানে চিত্র বর্ণনা লিখুন

৮.- আপনি আপনার এনকোডিং সফ্টওয়্যার অগ্রাধিকার চয়ন করার পরে (আগের ধাপে) আপনাকে দিক অনুপাতের জন্য জিজ্ঞাসা করা হবে। আপনার যদি অভিজ্ঞতা না থাকে তবে ঠিক তেমন ছেড়ে দিন। এটি সাধারণত ডিফল্ট হয় যা আপনার টিভি টিউনার সিগন্যালের সাথে আরও ভাল ফিট করে।

এখানে চিত্র বর্ণনা লিখুন

9.- দিক অনুপাত সম্পর্কিত আপনার পছন্দের উপর ভিত্তি করে, আপনার কাছে ভিডিও মানের জন্য বেশ কয়েকটি বিকল্প থাকবে, বিটরেটের ভিত্তিতেও পরবর্তী উইন্ডোটিতে বর্ণনাটি খুব নির্দিষ্ট। মনে রাখবেন: উচ্চতর বিটরেট (সেরা মানের) ভিডিও ফাইলের আকারটি বিশাল পরিমাণে পরিণত হতে পারে।

এখানে চিত্র বর্ণনা লিখুন

১০- এর পরে, আমাদের ভিডিও ক্যাপচার কত দিন হবে তা কেবল আমাদের চয়ন করতে হবে। বেশ কয়েকটি প্রিসেট রয়েছে, এই উদাহরণে আমি "পরীক্ষার জন্য 30 সেকেন্ড" বেছে নিয়েছি তবে রেকর্ডিং বন্ধ করার সিদ্ধান্ত নিতে আপনি কোনও পছন্দ বা এমনকি "সীমাহীন" বেছে নিতে পারেন।

এখানে চিত্র বর্ণনা লিখুন

১১- এর পরে , আপনাকে একটি ফাইলের নাম জিজ্ঞাসা করা হবে, একটি ডিফল্টরূপে দেওয়া, যা আপনি এই স্ক্রিনে পরিবর্তন করতে পারেন।

এখানে চিত্র বর্ণনা লিখুন

12.- আপনাকে পরবর্তী স্ক্রিনে আপনার "রেকর্ডিং বিকল্পগুলি" পরীক্ষা করতে অনুরোধ করা হবে, কেবল "ওকে" ক্লিক করুন।

এখানে চিত্র বর্ণনা লিখুন

13.- আর একটি ক্লিক শুরু করতে।

এখানে চিত্র বর্ণনা লিখুন

14.- রেকর্ডিংয়ের সময়, টার্মিনালটি কিছু ক্রিয়াকলাপ এবং এর মতো একটি ছোট উইন্ডো প্রদর্শন করতে পারে:

এখানে চিত্র বর্ণনা লিখুন

15.- প্রক্রিয়া শেষে, আপনি একটি নিশ্চিতকরণ উইন্ডো পাবেন।

এখানে চিত্র বর্ণনা লিখুন

এবং এটাই...

আপনি যে কোনও মুহূর্তে ESC টিপে রেকর্ডিং বা প্রক্রিয়াটি নিজেই বাতিল করতে পারেন, কোনও পরিবর্তন হবে না।

রেকর্ডিংয়ের শেষে, আপনি ধাপ ১১-এ যে জায়গায় বেছে নেবেন, সেই জায়গায় একটি ভিডিও থাকবে যা একটি নামের সাথে একটি লগ ফাইল সহ: "testvideo0.log" বা এর মতো কিছু।

অডিও এবং ভিডিও উভয়কে একই ফাইলে একত্রিত করে এটি আরএফ সিগন্যাল টিভি টিউনারের কাছ থেকে এনকোড করার সহজতম উপায়।

আমার আর একটি প্রক্রিয়া রয়েছে যা পাইথন প্রক্রিয়া ব্যবহার করে অর্জন করা হয় যা একটি জিইউআই বৈশিষ্ট্যযুক্ত যাতে আপনি বেশ কয়েকটি দরকারী জিনিস পরিচালনা করতে পারবেন যেমন চ্যানেল পরিবর্তন করা, প্রাক-রেকর্ডিং পরীক্ষা চালানো এবং এমনকি রেকর্ড করা তবে কখনও কখনও এটি আমার ব্যর্থতা ফেলে দেয়। আপনি যদি চান তবে দয়া করে আমাকে জানান যে আমি কীভাবে আপনার কাছে পৌঁছতে পারি। আমি চামড়া বা বাইবেল লিখতে চাই না ... LOL!

যদি এই পদ্ধতিটি আপনার ক্ষেত্রে কাজ করে না তবে দয়া করে এই উত্তরটি মোছার আগে কিছু সহায়তা দেওয়ার জন্য আপনার ফলাফলগুলি সহ আমাকে জানান। তোমাকে ধন্যবাদ এবং...

শুভকামনা!


আপনি কোন ইউএসবি টিভি টিউনার কার্ডের পরামর্শ দিচ্ছেন এবং উপরের সমাধানটি কোনও একক লিনাক্স মেশিনে 2-3 টিরও বেশি ভিডিও ফিডের জন্য কাজ করে? আমি একটি একক মেশিনে 4-8 টি ভিডিও রেকর্ড করার চেষ্টা করতে চাই। এটা কি আপনার মতে সম্ভব?
সিপি 3 ও

যেকোন অ্যানালগ টিভি টিউনার কার্ড, পিসিআই এবং / অথবা ইউএসবি উভয়ই যদি ডিভাইসটি সঠিকভাবে সনাক্ত এবং ইনস্টল করা থাকে তবেই কাজ করা উচিত। মাল্টি-ফিড রেকর্ডিং সম্পর্কে যা আছে তার জন্য, আপনি যদি বেশ কয়েকটি দৃষ্টান্ত চালান এবং সঠিক মিডিয়া ফিড চয়ন করেন তবে এই সমাধানটি নিখুঁতভাবে কাজ করা উচিত। দুর্ভাগ্যক্রমে, কিছু ক্ষেত্রে অডিও স্ট্রিমটি আপনার পছন্দের অডিও মিক্সারের দ্বারা পরিচালিত হয় (আসুন আমরা আলসা বা পালসোডিও, জ্যাক ইত্যাদি বলি) এর জন্য কোডটি টিউন করতে হতে পারে আমরা কোন অডিও স্ট্রিমটি ব্যবহার করতে যাচ্ছি তা বলার জন্য নির্দিষ্ট ভিডিও ডিভাইসে ক্যাপচার। অতিরিক্তভাবে, আপনি যত বেশি স্ট্রিম ক্যাপচার করেন, এর জন্য আরও সংস্থান প্রয়োজন।
গ্যাপেটটিভস ডি'কনস্তানজো

3

আপনাকে অবশ্যই "কিউটিসিএএম" চেষ্টা করতে হবে - একটি ফ্রি, ওপেন সোর্স লিনাক্স ওয়েবক্যামেরা সফটওয়্যার 10 টিরও বেশি চিত্র নিয়ন্ত্রণ সেটিংস সহ।

QtCAM চিত্র ক্যাপচার সেটিংস


এটি এখন 16.04
টিম

0

এটি সহজতম আদেশ:

ffmpeg -i /dev/video0 output.mp4

আরে, উবুন্টুকে জিজ্ঞাসা করুন! মন্তব্যটি কীভাবে কাজ করে এবং কীভাবে এটি ওপির সমস্যার সমাধান করবে তা ব্যাখ্যা করার জন্য আপনি কীভাবে আপনার উত্তরটি সম্পাদনা করতে কিছুক্ষণ সময় নিতে পারেন ? ধন্যবাদ :)
গ্রোভেলপ্লেক্স

0

আমি উবুন্টু 18.04 এর জন্য ভোকোস্ক্রিনের পরামর্শ দেব। আপনি এটি 'sudo অ্যাপ্লিকেশন ভোকোস্ক্রিন' দিয়ে ইনস্টল করতে পারেন। Https://github.com/vkohaupt/vokoscreen দেখুন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.