H.265 का H.264 में बैच रूपांतरण
ये उदाहरण हाल के लिए लिखे गए थे ffmpeg। अपने आप को कुछ परेशानी से बचाएं और हाल का संस्करण डाउनलोड करें । फिर डाल ffmpegमें द्विआधारी ~/binया/usr/local/bin (आप तो लॉग आउट में प्रवेश करें यह ध्यान दिया जाने के लिए हो सकता है)।
Matroska उत्पादन
mkdir h264vids
for f in *.mp4; do ffmpeg -i "$f" -map 0 -c copy -c:v libx264 -crf 23 -preset medium h264vids/"${f%.*}.mkv"; done
यह उदाहरण एक निर्देशिका नाम का आउटपुट देगा h264vids।
यह उदाहरण मानता है कि आपके इनपुट हैं .mp4। यदि नहीं, .mp4तो उदाहरण को अपनी इनपुट फ़ाइल प्रकार में उदाहरण में बदलें , या केवल *अपने द्वारा लालची का उपयोग करें ।
-crfगुणवत्ता और -presetएन्कोडिंग गति / दक्षता के लिए समायोजित करें । या बस इन विकल्पों को हटा दें और उन चूक का उपयोग करें जो काफी अच्छे हैं और अधिकांश के लिए पर्याप्त होना चाहिए (उदाहरण इन विकल्पों के लिए डिफ़ॉल्ट मान का उपयोग कर रहा है)। इन विकल्पों पर अधिक जानकारी के लिए FFmpeg Wiki: H.264 देखें ।
MP4 आउटपुट
यह एक और अधिक जटिल है। यह सशर्त एन्कोडिंग प्रदर्शन करेगा यदि इनपुट ऑडियो AAC है या नहीं। यदि इनपुट ऑडियो AAC है तो ऑडियो स्ट्रीम कॉपी (पुन: muxed) हो जाएगा और अनावश्यक री-एन्कोडिंग से बचा जाता है। यदि इनपुट ऑडियो AAC नहीं है, तो यह AAC को फिर से एनकोड किया जाएगा।
यहां एक सरल स्क्रिप्ट प्रदर्शित की गई है कि यह कैसे उपयोग करना है ffprobeऔर ffmpeg। कॉपी करें और इसे कन्वर्ट करने के लिए अपने वीडियो युक्त निर्देशिका में सहेजें, इसे अनुमति के साथ निष्पादित करें chmod +x yourscriptname, फिर इसे साथ चलाएँ ./yourscriptname।
#!/bin/bash
mkdir h264vids
for f in *.mkv
do
audioformat=$(ffprobe -loglevel error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1:nk=1 "$f")
if [ "$audioformat" = "aac" ]; then
ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium -c:a copy -movflags +faststart h264vids/"${f%.*}.mp4"
else
ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium -c:a aac -movflags +faststart h264vids/"${f%.*}.mp4"
fi
done
यह उदाहरण एक निर्देशिका नाम का आउटपुट देगा h264vids।
यह उदाहरण मानता है कि आपके इनपुट हैं .mkv। यदि नहीं, .mkvतो उदाहरण को अपनी इनपुट फ़ाइल प्रकार में उदाहरण में बदलें , या केवल *अपने द्वारा लालची का उपयोग करें ।
के बारे में ऊपर नोट देखें -crfऔर -preset।
आप ctrl+ के साथ एन्कोडिंग को रोक सकते हैं zऔर फिर से शुरू कर सकते हैं fg।
sleep 3अनावश्यक (लेकिन लूप को समाप्त करने के लिए संभव है), औरINPUT=$1जब से आप इसे एक इंटरैक्टिव शेल में सीधे चला रहे हैं, तब तक यह अर्थहीन है।