परिदृश्य
मेरे पास एक मूवी लाइब्रेरी है जिसे मैं प्लेबैक के लिए वीएलसी का उपयोग करके अपने एंड्रॉइड टैबलेट के लिए सुव्यवस्थित बनाने के लिए देख रहा हूं। मैं मोबाइल इंटरनेट कनेक्शन पर सर्वोत्तम संभव दृश्य गुणवत्ता के लिए H264 + AAC का उपयोग करना चाहता हूं। मैं एक Matroska कंटेनर का उपयोग करने की भी इच्छा रखता हूं जो कि बिटमैप उपशीर्षक के विपरीत टेक्स्ट उपशीर्षक का समर्थन करता है जो MPEG2TS का समर्थन करता है।
मैंने मेडियाटॉम्ब स्थापित किया है और UPnP काम कर रहा है जैसा कि मुझे करना चाहिए, मैं ट्रांसकोडिंग के बिना वीडियो और ऑडियो ठीक कर सकता हूं।
मुसीबत
मैं ट्रांसकोड और downsample mpeg2 करने के लिए बस ठीक कर सकते हैं। लेकिन H264 प्लेबैक किसी भी एक वीडियो के लिए हर बार एक ही जगह पर 10-40 सेकंड के बाद रुक जाता है लेकिन हर वीडियो के लिए अलग-अलग जगह होता है। प्लेबैक पीसी पर वीएलसी पर भी शुरू नहीं होता है (पहले फ्रेम के बाद बंद हो जाता है)।
कॉन्फ़िगरेशन
मैं इस स्क्रिप्ट का उपयोग कर रहा हूं
#!/bin/bash
LINES=720
PRESET=veryfast
PROFILE=main
TUNE=zerolatency
AUDIO="-c:a libfaac -b:a 128k -ar 48000 -ac 2 -async 1"
# Works well
VIDEO="-c:v mpeg2video -b 8192k"
# Freezes after a few seconds seconds.
#VIDEO="-c:v libx264 -preset ${PRESET} -tune ${TUNE} -profile ${PROFILE}"
SUBTITLES="-c:s copy"
exec /usr/bin/ffmpeg -threads 2 -i "${1}" -filter:v scale=-1:720 $VIDEO \
$AUDIO $SUBTITLES -f matroska -y "${2}" &> /store/tmp/log
संबंधित अनुभाग के साथ मेरा मीडियम गर्भ विन्यास:
<profile name="h264stream" enabled="yes" type="external">
<mimetype>video/x-matroska</mimetype>
<accept-url>no</accept-url>
<first-resource>yes</first-resource>
<hide-original-resource>yes</hide-original-resource>
<accept-ogg-theora>yes</accept-ogg-theora>
<sample-frequency>48000</sample-frequency>
<audio-channels>2</audio-channels>
<agent command="/etc/mediatomb/ffmpeg.sh" arguments="%in %out"/>
<buffer size="104857600" chunk-size="262144" fill-size="524288"/>
</profile>
यदि मैं करूं तो tail -f /store/tmp/log
मैं देख सकता हूं कि टैबलेट पर प्लेबैक रुकने के बाद भी FFMPEG प्रोसेस एन्कोडिंग है। वास्तव में, यह बहुत खुशी से चबा रहा है। और यह एक ऐसी दर पर एन्कोडिंग है जो स्रोत सामग्री की तुलना में तेज़ है इसलिए यह पीछे नहीं है। टेबलेट पर प्लेबैक तब तक सुचारू है जब तक कि यह अचानक बंद न हो जाए।
मैंने अलग-अलग प्रीसेट, प्रोफाइल और ट्यून पैरामेट्स का उपयोग करने की कोशिश की है, कोई फायदा नहीं हुआ, जब तक कि फ्रीज नहीं होता है, तो यह विपरीत रूप से आनुपातिक लगता है कि एनकोडर कितनी तेजी से चल रहा है (उच्च एन्कोडिंग गति, फ्रीज करने के लिए कम समय)