कमांड लाइन से वीडियो में "फीका टू ब्लैक" इफ़ेक्ट जोड़ने का कोई तरीका है?


9

मेरे पास वीडियो को एन्कोड करने के लिए एक स्क्रिप्ट है (मेन्कोडेर का उपयोग करके), लेकिन क्या कमांड लाइन से एक साधारण "फीका आउट / टू ब्लैक" जोड़ने का एक तरीका है, अधिमानतः मुक्त (जैसा कि खुले स्रोत में)।

यह या तो विंडोज या उबंटू लिनक्स पर हो सकता है।


1
क्या mmsuper8 आपके लिए काम करता है ? कृपया राज्य ऑपरेटिंग सिस्टम, आदि
slhck

माफ़ करना। उबंटू या सात।
मनु

अपने जवाब के रूप में mmsuper8 बनाओ, मैं तुम्हें वोट दूंगा :)
मनु

जवाबों:


1

केवल एक चीज जो मैं पा सकता था - कमांड लाइन पर आधारित - mmsuper8एक लिनक्स टूल।

विशेष रूप से, यह mmsuper8fadeउपकरण की सुविधा देता है , जो ऐसा लगता है कि यह आपके लिए उपयोगी हो सकता है।

यदि आप इस प्रश्न को संपादित करते हैं और आपके लिए काम करने वाले उदाहरण की आपूर्ति करते हैं तो सबसे अच्छा होगा!


14

'फीका' वीडियो फिल्टर के साथ हाल ही में ffmpeg ऐसा कर सकता है। दुर्भाग्य से, Ubuntu रेपो में ffmpeg के पास किसी कारण के लिए सक्षम फिल्टर नहीं हैं, इसलिए आपको इसे कहीं और से प्राप्त करना होगा ( यहां देखें )।

काले से फीका करने के लिए, फ्रेम 0 से शुरू होकर, 50 से अधिक फ्रेम (2 सेकंड @ 25fps):

ffmpeg -i input.mp4 -filter:v 'fade=in:0:50' \
-c:v libx264 -crf 22 -preset veryfast -c:a copy output.mp4

21000 (14 मिनट @ 25fps) फ्रेम पर शुरू करने के लिए, 50 से अधिक फ्रेम:

ffmpeg -i input.mp4 -filter:v 'fade=out:21000:50' \
-c:v libx264 -crf 22 -preset veryfast -c:a copy output.mp4

आप दोनों को एक फ़िल्टरचैन में संयोजित कर सकते हैं:

ffmpeg -i input.mp4 -filter:v 'fade=in:0:50,fade=out:21000:50' \
-c:v libx264 -crf 22 -preset veryfast -c:a copy output.mp4

जैसा कि आप इन उदाहरणों से देख सकते हैं, वीडियो फिल्टर का उपयोग करते समय आपको वीडियो ट्रांसकोड करना होगा। चूंकि ffmpeg और mencoder कई पुस्तकालयों को साझा करते हैं, इसलिए mencoder के बजाय ffmpeg का उपयोग करना और एक अनावश्यक अतिरिक्त एनकोड से बचने के लिए अपनी स्क्रिप्ट को फिर से लिखना काफी आसान होना चाहिए। मुझे पूरा यकीन है कि आप mencoder में एक ही चीज़ हासिल कर सकते हैं, लेकिन मुझे mencoder syntax नहीं पता है।


6

फिल्मों के अंत (ऑडियो + वीडियो) को स्वचालित रूप से मिटाने के लिए मेरे पास यह बैश स्क्रिप्ट है:

#!/bin/bash

# Audio + vidéo fade out at the end of mp4 files

# 2015-09-09 19:07:17.0 +0200 / Gilles Quenot

# length of the fade out
fade_duration=2 # seconds

if [[ ! $2 ]]; then
    cat<<EOF
Usage:
    ${0##*/} <input mp4> <output mp4>
EOF
    exit 1
fi

for x in bc awk ffprobe ffmpeg; do
    if ! type &>/dev/null $x; then
        echo >&2 "$x should be installed"
        ((err++))
    fi
done

((err > 0)) && exit 1

duration=$(ffprobe -select_streams v -show_streams "$1" 2>/dev/null |
    awk -F= '$1 == "duration"{print $2}')
final_cut=$(bc -l <<< "$duration - $fade_duration")
ffmpeg -i "$1" \
    -filter:v "fade=out:st=$final_cut:d=$fade_duration" \
    -af "afade=t=out:st=$final_cut:d=$fade_duration" \
    -c:v libx264 -crf 22 -preset veryfast -strict -2 "$2"

उपयोग:

FadeOutMp4 <input mp4> <output mp4>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.