2013-04-23 12 views
6

मैं ffmpeg का उपयोग कर justin.tv पर एक वीडियो लूप स्ट्रीम करने की कोशिश कर रहा हूं? मैं पाश के लिए एक छवि अनुक्रम में कामयाब रहे और ऑडियो में लाइन के साथ संयोजित किया है:एफएफएमपीजी लाइव स्ट्रीम - लूप वीडियो?

 
ffmpeg -loop 1 -i imageSequence%04d.jpg -f alsa -ac 2 -ar 22050 -ab 64k \ 
    -i pulse -acodec adpcm_swf -r 10 -vcodec flv \ 
    -f flv rtmp://live.justin.tv/app/<yourStreamKeyHere> 

यह एक वीडियो फ़ाइल के साथ ऐसा करना संभव है?

उत्तर

2

Sinclair Media lavfi फिल्टर का उपयोग कर और फ़ाइल नाम को :loop=0 जोड़कर एक समाधान मिल गया है:

यह अपरीक्षित है:

ffmpeg -f lavfi -re -i movie=StreamTest.avi:loop=0 \ 
-acodec libfaac -b:a 64k -pix_fmt yuv420p -vcodec libx264 \ 
-x264opts level=41 -r 25 -profile:v baseline -b:v 1500k \ 
-maxrate 2000k -force_key_frames 50 -s 640×360 -map 0 -flags \ 
-global_header -f segment -segment_list index_1500.m3u8 \ 
-segment_time 10 -segment_format mpeg_ts \ 
-segment_list_type m3u8 segmented.ts 

लेकिन यह एक स्थानीय "index_1500.m3u8" फ़ाइल बनाने चाहिए कि वीडियो को "StreamTest.avi" में स्ट्रीम करता है।

+0

मैं इन तर्कों का उपयोग करने के यह काम ठीक से करना था (टीबी FRAME_RATE *) पाश = 0, setpts = एन/"'। उन लोगों के बिना, यह पहली लूप के बाद रोक रहा था और शेष फ्रेम गिरा दिए गए थे। – jadkik94

3

निश्चित रूप से संभव है। Ffmpeg के हाल के संस्करणों में उन्होंने एक-स्ट्रीम_लूप ध्वज जोड़ा है जो आपको आवश्यकतानुसार इनपुट को लूप करने की अनुमति देता है।

गॉचा यह है कि यदि आप स्रोत से पीटीएस को पुन: उत्पन्न नहीं करते हैं, तो ffmpeg पहले लूप के बाद फ्रेम छोड़ देगा (क्योंकि टाइमस्टैम्प अचानक समय पर वापस आ जाएगा)। इससे बचने के लिए, आपको pts उत्पन्न करने के लिए ffmpeg बताना होगा ताकि आपको लूप के बीच बढ़ती टाइमस्टैम्प मिल सके। यह + जेनप्ट्स कॉल के साथ किया जाता है (इसे -i तर्क से पहले होना चाहिए)।

यहां एक उदाहरण है ffmpeg कॉल (अपनी इनपुट फ़ाइल के साथ $ एफ को प्रतिस्थापित करें)। यह उदाहरण दो आउटपुट स्ट्रीम उत्पन्न करता है और -stream_loop -1 तर्क इनपुट को लगातार लूप करने के लिए ffmpeg को बताता है। इस मामले में आउटपुट एक समान स्ट्रीम प्रसारण इंजेस्ट (मेटा सीडीएनएन) के लिए है, अपनी आवश्यकताओं के अनुसार समायोजित करें। `-f lavfi -re -fflags + genpts मैं" फिल्म = GleamingThatBrownbutterfly.webm:

ffmpeg -threads 2 -re -fflags +genpts -stream_loop -1 -i $F \ 
-s 640x360 -ac 2 -f flv -vcodec libx264 -profile:v baseline -b:v 600k -maxrate 600k -bufsize 600k -r 24 -ar 44100 -g 48 -c:a libfdk_aac -b:a 64k "rtmp://publish.live.metacdn.com/2050C7/dfsdfsd/lowquality_664?hello&adbe-live-event=lowquality_" \ 
-s 1920x1080 -ac 2 -f flv -vcodec libx264 -profile:v baseline -b:v 2000k -maxrate 2000k -bufsize 2000k -r 24 -ar 44100 -g 48 -c:a libfdk_aac -b:a 64k "rtmp://publish.live.metacdn.com/2050C7/dfsdfsd/highquality_2064?mate&adbe-live-event=highquality_" 
संबंधित मुद्दे