Một số bạn thắc mắc cách live stream Video ngẫu nhiên trong thư mục và mình nhận thấy chưa có một hướng dẫn nào cho việc này. Bài viết hôm nay mình sẽ hướng dẫn các bạn tích hợp code ffmpeg để có thể live stream ngẫu nhiên Video trong một thư mục bất kỳ và lặp lại quá trình đó 24/7.
Bài trước mình đã chia sẻ các live stream toàn bộ Video trong thư mục và lặp lại quá trình live stream liên tục đến khi nào chúng ta nhấn kết thúc thì quá trình live stream mới dừng lại. Bài hướng dẫn đó mình đã sử dụng việc tạo list.txt file chứa các đường dẫn Video đầu vào.
Mặc định thì chúng ta sử dụng lệnh DIR để tạo list file thì nó sẽ sắp xếp thứ tự các file theo một trật tự nhất định. Như hướng dẫn trước thì nó mặc định sẽ sắp xếp theo file name có nghĩa theo thứ tự tăng dần alphabet.
Bài viết này chúng ta muốn live stream ngẫu nhiên các Video đồng nghĩa với việc chúng ta phải tạo được sự sắp xếp ngẫu nhiên các file trong list.txt này. Và để thực hiện điều đó các bạn phải làm thế nào.
Cùng theo dõi Video bên dưới để thấy sự lựa chọn ngẫu nhiên các file Video khi live stream.
Mình đã sử dụng 5 Video theo thứ tự từ 1=>5. Các bạn xem Video có thấy thứ tự Video Live stream đã được thay đổi không nào. Đoạn Video trên các bạn sẽ dễ dàng thấy được thứ tự như sau: 324 53124 13245 35241 43521 3452. Các bạn có thấy từng cụm 5 Video đã được hoán đổi vị trí ngẫu nhiên chưa nào.
Các bạn tự suy nghĩ xem cách thức hoán đổi thế nào nhé. Chỉ cần tìm hiểu một chút xíu thôi là dễ dàng làm được điều đó. Tiết lộ với các bạn là thay đổi thứ tự trong file list.txt mà mình đã hướng dẫn ở bài trước nhé.
Nhưng các bạn thực hiện thủ công để chỉnh sửa list.txt thì rất mất công và cũng phải ngồi chờ nó live stream hết một lượt rồi chúng ta thay đổi thứ tự các file trong list.txt được. Việc này hoàn toàn có thể làm tự động và nội dung chính của bài viết là ở đây.
Các bạn muốn tạo file list.txt tự động và ngẫu nhiên sắp xếp các file trong đó thì các bạn cần phải sử dụng một đoạn code tạo list file ngẫu nhiên. Mình đã tích hợp hai đoạn code tạo file ngẫu nhiên và live stream Video trên file list.txt ngẫu nhiên đó các bạn có thể Download toàn bộ Code về tại đây:
Code tạo file list.txt ngẫu nhiên
@echo off &setlocal set "playlist=list.txt" del %playlist% 2>nul set /a files=0 for %%i in (*.mp4) do set /a files+=1 if %files% equ 0 (echo No MP4 found&goto:eof) else echo %files% MP4's found. set /a cnt=%files%-1 for /l %%i in (0,1,%cnt%) do for /f "delims=" %%a in ('dir /s/b /a-d *.mp4^|more +%%i') do if not defined $avi%%i set "$avi%%i=%%a" :randomloop set /a rd=%random%%%%files% call set "avi=%%$avi%rd%%%" if not defined avi goto :randomloop set "$avi%rd%=" >>%playlist% echo %avi% set /a cnt-=1 if %cnt% geq 0 goto:randomloop echo Done! endlocal
Code live stream list.txt ngẫu nhiên và lặp lại quá trình
:loop call random_list1.bat for /F "delims=;" %%F in (list.txt) DO ffmpeg -re -i "%%F" -vcodec libx264 -preset veryfast -maxrate 2500k -bufsize 3368k -vf "format=yuv420p" -g 60 -acodec libmp3lame -b:a 198k -ar 44100 -f flv -s 1280x720 rtmp://a.rtmp.youtube.com/live2/key_live_stream goto loop
Trong đó:
- random_list1.bat là file .bat có chức năng tạo list file ngẫu nhiên.
- code live stream loop list 1.bat là file .bat thực hiện việc live stream lên Youtube danh sách Video có trong list.txt
Giải thích cơ chế hoạt động của đoạn code:
Khi bạn thực hiện chạy file code live stream loop list 1.bat thì đầu tiên nó sẽ tự động sinh file list.txt với sự sắp xếp ngẫu nhiên các file trong này. Tiếp đến là live stream toàn bộ Video trong list.txt đó. Xong 1 lượt hết toàn bộ Video thì nó sẽ thực hiện việc lặp lại quá trình này, ngay lúc này random_list1.bat là file .bat cũng được gọi để tạo list.txt mới với danh sách file ngẫu nhiên tiếp theo.
Cứ như vậy lặp lại quá trình live stream với list.txt ngẫu nhiên.
Nếu có vấn đề gì thắc mắc, hãy để lại Comment phía cuối bài viết, nếu nằm trong sự hiểu biết của mình, mình sẽ trả lời các bạn thật chi tiết nhất. Xin chào và hẹn gặp lại.
le quoc trung viết
cám ơn admin <3