Slideshow Background on FFmpeg for Streaming
I currently have a GIF looping in the background. But I want to add an image slideshow that features 10 images on loop. How can I achieve this?
My current code example that uses a GIF is below:
FFMPEG=ffmpeg
GIF= /home/randomgif.gif
STREAM_KEY=
TEXT=current_song.txt
COLOR="0xFFFFFF"
BCOLOR="0x000000"
INRES=1366x768 # input resolution
OUTRES=1366x768 # output resolution
FPS=15 # target FPS
GOP=30 # i-frame interval, should be double of FPS,
GOPMIN=15 # min i-frame interval, should be equal to fps,
THREADS=4 # max 6
CBR=1100k # constant bitrate (should be between 1000k - 3000k)
QUALITY=veryfast # one of the many FFMPEG preset
AUDIO_RATE=44100
KEYINT=$(expr $FPS * 3)
$FFMPEG -thread_queue_size 1024 -f alsa -ac 2 -i hw:Loopback,1,0 -fflags +genpts -ignore_loop 0 -r $FPS -i $GIF
-vf drawtext="fontfile=/usr/share/fonts/truetype/slant.ttf:bordercolor=$BCOLOR: borderw=1: fontcolor=$COLOR:textfile=$TEXT:reload=1:y=10:x=5:fontsize=38"
-vcodec libx264 -x264opts keyint=$KEYINT:min-keyint=$KEYINT:scenecut=-1 -b:v $CBR -minrate $CBR -maxrate $CBR -pix_fmt yuv420p
-s $OUTRES -preset $QUALITY -acodec aac -threads $THREADS -fflags nobuffer
-bufsize $CBR -f flv "rtmp://a.rtmp.youtube.com/live2/$STREAM_KEY"
2> log_stream.txt
ubuntu ffmpeg
add a comment |
I currently have a GIF looping in the background. But I want to add an image slideshow that features 10 images on loop. How can I achieve this?
My current code example that uses a GIF is below:
FFMPEG=ffmpeg
GIF= /home/randomgif.gif
STREAM_KEY=
TEXT=current_song.txt
COLOR="0xFFFFFF"
BCOLOR="0x000000"
INRES=1366x768 # input resolution
OUTRES=1366x768 # output resolution
FPS=15 # target FPS
GOP=30 # i-frame interval, should be double of FPS,
GOPMIN=15 # min i-frame interval, should be equal to fps,
THREADS=4 # max 6
CBR=1100k # constant bitrate (should be between 1000k - 3000k)
QUALITY=veryfast # one of the many FFMPEG preset
AUDIO_RATE=44100
KEYINT=$(expr $FPS * 3)
$FFMPEG -thread_queue_size 1024 -f alsa -ac 2 -i hw:Loopback,1,0 -fflags +genpts -ignore_loop 0 -r $FPS -i $GIF
-vf drawtext="fontfile=/usr/share/fonts/truetype/slant.ttf:bordercolor=$BCOLOR: borderw=1: fontcolor=$COLOR:textfile=$TEXT:reload=1:y=10:x=5:fontsize=38"
-vcodec libx264 -x264opts keyint=$KEYINT:min-keyint=$KEYINT:scenecut=-1 -b:v $CBR -minrate $CBR -maxrate $CBR -pix_fmt yuv420p
-s $OUTRES -preset $QUALITY -acodec aac -threads $THREADS -fflags nobuffer
-bufsize $CBR -f flv "rtmp://a.rtmp.youtube.com/live2/$STREAM_KEY"
2> log_stream.txt
ubuntu ffmpeg
What happens when you run this code?
– Twisty Impersonator
Jan 26 at 1:09
It streams to YouTube and plays the GIF in a loop. I want to move from using a GIF to a slideshow of images that loop.
– Orophix
Jan 26 at 1:30
What have you tried? Please do not only respond in the comments. Instead, edit the post with this information.
– Twisty Impersonator
Jan 26 at 1:48
add a comment |
I currently have a GIF looping in the background. But I want to add an image slideshow that features 10 images on loop. How can I achieve this?
My current code example that uses a GIF is below:
FFMPEG=ffmpeg
GIF= /home/randomgif.gif
STREAM_KEY=
TEXT=current_song.txt
COLOR="0xFFFFFF"
BCOLOR="0x000000"
INRES=1366x768 # input resolution
OUTRES=1366x768 # output resolution
FPS=15 # target FPS
GOP=30 # i-frame interval, should be double of FPS,
GOPMIN=15 # min i-frame interval, should be equal to fps,
THREADS=4 # max 6
CBR=1100k # constant bitrate (should be between 1000k - 3000k)
QUALITY=veryfast # one of the many FFMPEG preset
AUDIO_RATE=44100
KEYINT=$(expr $FPS * 3)
$FFMPEG -thread_queue_size 1024 -f alsa -ac 2 -i hw:Loopback,1,0 -fflags +genpts -ignore_loop 0 -r $FPS -i $GIF
-vf drawtext="fontfile=/usr/share/fonts/truetype/slant.ttf:bordercolor=$BCOLOR: borderw=1: fontcolor=$COLOR:textfile=$TEXT:reload=1:y=10:x=5:fontsize=38"
-vcodec libx264 -x264opts keyint=$KEYINT:min-keyint=$KEYINT:scenecut=-1 -b:v $CBR -minrate $CBR -maxrate $CBR -pix_fmt yuv420p
-s $OUTRES -preset $QUALITY -acodec aac -threads $THREADS -fflags nobuffer
-bufsize $CBR -f flv "rtmp://a.rtmp.youtube.com/live2/$STREAM_KEY"
2> log_stream.txt
ubuntu ffmpeg
I currently have a GIF looping in the background. But I want to add an image slideshow that features 10 images on loop. How can I achieve this?
My current code example that uses a GIF is below:
FFMPEG=ffmpeg
GIF= /home/randomgif.gif
STREAM_KEY=
TEXT=current_song.txt
COLOR="0xFFFFFF"
BCOLOR="0x000000"
INRES=1366x768 # input resolution
OUTRES=1366x768 # output resolution
FPS=15 # target FPS
GOP=30 # i-frame interval, should be double of FPS,
GOPMIN=15 # min i-frame interval, should be equal to fps,
THREADS=4 # max 6
CBR=1100k # constant bitrate (should be between 1000k - 3000k)
QUALITY=veryfast # one of the many FFMPEG preset
AUDIO_RATE=44100
KEYINT=$(expr $FPS * 3)
$FFMPEG -thread_queue_size 1024 -f alsa -ac 2 -i hw:Loopback,1,0 -fflags +genpts -ignore_loop 0 -r $FPS -i $GIF
-vf drawtext="fontfile=/usr/share/fonts/truetype/slant.ttf:bordercolor=$BCOLOR: borderw=1: fontcolor=$COLOR:textfile=$TEXT:reload=1:y=10:x=5:fontsize=38"
-vcodec libx264 -x264opts keyint=$KEYINT:min-keyint=$KEYINT:scenecut=-1 -b:v $CBR -minrate $CBR -maxrate $CBR -pix_fmt yuv420p
-s $OUTRES -preset $QUALITY -acodec aac -threads $THREADS -fflags nobuffer
-bufsize $CBR -f flv "rtmp://a.rtmp.youtube.com/live2/$STREAM_KEY"
2> log_stream.txt
ubuntu ffmpeg
ubuntu ffmpeg
edited Jan 26 at 1:16
JakeGould
32.1k1098141
32.1k1098141
asked Jan 26 at 1:05
OrophixOrophix
105
105
What happens when you run this code?
– Twisty Impersonator
Jan 26 at 1:09
It streams to YouTube and plays the GIF in a loop. I want to move from using a GIF to a slideshow of images that loop.
– Orophix
Jan 26 at 1:30
What have you tried? Please do not only respond in the comments. Instead, edit the post with this information.
– Twisty Impersonator
Jan 26 at 1:48
add a comment |
What happens when you run this code?
– Twisty Impersonator
Jan 26 at 1:09
It streams to YouTube and plays the GIF in a loop. I want to move from using a GIF to a slideshow of images that loop.
– Orophix
Jan 26 at 1:30
What have you tried? Please do not only respond in the comments. Instead, edit the post with this information.
– Twisty Impersonator
Jan 26 at 1:48
What happens when you run this code?
– Twisty Impersonator
Jan 26 at 1:09
What happens when you run this code?
– Twisty Impersonator
Jan 26 at 1:09
It streams to YouTube and plays the GIF in a loop. I want to move from using a GIF to a slideshow of images that loop.
– Orophix
Jan 26 at 1:30
It streams to YouTube and plays the GIF in a loop. I want to move from using a GIF to a slideshow of images that loop.
– Orophix
Jan 26 at 1:30
What have you tried? Please do not only respond in the comments. Instead, edit the post with this information.
– Twisty Impersonator
Jan 26 at 1:48
What have you tried? Please do not only respond in the comments. Instead, edit the post with this information.
– Twisty Impersonator
Jan 26 at 1:48
add a comment |
1 Answer
1
active
oldest
votes
Replace -fflags +genpts -ignore_loop 0 -r $FPS -i $GIF
with -framerate $FPS -loop 1 -i img%d.jpg
where the images are image1.jpg
, image2.jpg
... image10.jpg
. The images should be the same resolution.
I end up with: [image2 @ 0x55c9a7520800] Could find no file with path 'img%d.jpg' and index in the range 0-4 img%d.jpg: No such file or directory
– Orophix
Feb 7 at 5:37
Sorry, forimg%d.jpg
, files should beimg1.jpg
,img2.jpg
...
– Gyan
Feb 7 at 5:42
Awesome, very close to what I need. The pictures are scrolling through at the moment is there a way to make the picture display for a certain period of time before moving to the next?
– Orophix
Feb 7 at 6:12
Setframerate
value to reciprocal of frame duration i.e. for 5 seconds per frame,1/5
Then addfps=15
before the drawtext.
– Gyan
Feb 7 at 6:37
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1398619%2fslideshow-background-on-ffmpeg-for-streaming%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Replace -fflags +genpts -ignore_loop 0 -r $FPS -i $GIF
with -framerate $FPS -loop 1 -i img%d.jpg
where the images are image1.jpg
, image2.jpg
... image10.jpg
. The images should be the same resolution.
I end up with: [image2 @ 0x55c9a7520800] Could find no file with path 'img%d.jpg' and index in the range 0-4 img%d.jpg: No such file or directory
– Orophix
Feb 7 at 5:37
Sorry, forimg%d.jpg
, files should beimg1.jpg
,img2.jpg
...
– Gyan
Feb 7 at 5:42
Awesome, very close to what I need. The pictures are scrolling through at the moment is there a way to make the picture display for a certain period of time before moving to the next?
– Orophix
Feb 7 at 6:12
Setframerate
value to reciprocal of frame duration i.e. for 5 seconds per frame,1/5
Then addfps=15
before the drawtext.
– Gyan
Feb 7 at 6:37
add a comment |
Replace -fflags +genpts -ignore_loop 0 -r $FPS -i $GIF
with -framerate $FPS -loop 1 -i img%d.jpg
where the images are image1.jpg
, image2.jpg
... image10.jpg
. The images should be the same resolution.
I end up with: [image2 @ 0x55c9a7520800] Could find no file with path 'img%d.jpg' and index in the range 0-4 img%d.jpg: No such file or directory
– Orophix
Feb 7 at 5:37
Sorry, forimg%d.jpg
, files should beimg1.jpg
,img2.jpg
...
– Gyan
Feb 7 at 5:42
Awesome, very close to what I need. The pictures are scrolling through at the moment is there a way to make the picture display for a certain period of time before moving to the next?
– Orophix
Feb 7 at 6:12
Setframerate
value to reciprocal of frame duration i.e. for 5 seconds per frame,1/5
Then addfps=15
before the drawtext.
– Gyan
Feb 7 at 6:37
add a comment |
Replace -fflags +genpts -ignore_loop 0 -r $FPS -i $GIF
with -framerate $FPS -loop 1 -i img%d.jpg
where the images are image1.jpg
, image2.jpg
... image10.jpg
. The images should be the same resolution.
Replace -fflags +genpts -ignore_loop 0 -r $FPS -i $GIF
with -framerate $FPS -loop 1 -i img%d.jpg
where the images are image1.jpg
, image2.jpg
... image10.jpg
. The images should be the same resolution.
answered Jan 26 at 5:27
GyanGyan
15.6k21846
15.6k21846
I end up with: [image2 @ 0x55c9a7520800] Could find no file with path 'img%d.jpg' and index in the range 0-4 img%d.jpg: No such file or directory
– Orophix
Feb 7 at 5:37
Sorry, forimg%d.jpg
, files should beimg1.jpg
,img2.jpg
...
– Gyan
Feb 7 at 5:42
Awesome, very close to what I need. The pictures are scrolling through at the moment is there a way to make the picture display for a certain period of time before moving to the next?
– Orophix
Feb 7 at 6:12
Setframerate
value to reciprocal of frame duration i.e. for 5 seconds per frame,1/5
Then addfps=15
before the drawtext.
– Gyan
Feb 7 at 6:37
add a comment |
I end up with: [image2 @ 0x55c9a7520800] Could find no file with path 'img%d.jpg' and index in the range 0-4 img%d.jpg: No such file or directory
– Orophix
Feb 7 at 5:37
Sorry, forimg%d.jpg
, files should beimg1.jpg
,img2.jpg
...
– Gyan
Feb 7 at 5:42
Awesome, very close to what I need. The pictures are scrolling through at the moment is there a way to make the picture display for a certain period of time before moving to the next?
– Orophix
Feb 7 at 6:12
Setframerate
value to reciprocal of frame duration i.e. for 5 seconds per frame,1/5
Then addfps=15
before the drawtext.
– Gyan
Feb 7 at 6:37
I end up with: [image2 @ 0x55c9a7520800] Could find no file with path 'img%d.jpg' and index in the range 0-4 img%d.jpg: No such file or directory
– Orophix
Feb 7 at 5:37
I end up with: [image2 @ 0x55c9a7520800] Could find no file with path 'img%d.jpg' and index in the range 0-4 img%d.jpg: No such file or directory
– Orophix
Feb 7 at 5:37
Sorry, for
img%d.jpg
, files should be img1.jpg
, img2.jpg
...– Gyan
Feb 7 at 5:42
Sorry, for
img%d.jpg
, files should be img1.jpg
, img2.jpg
...– Gyan
Feb 7 at 5:42
Awesome, very close to what I need. The pictures are scrolling through at the moment is there a way to make the picture display for a certain period of time before moving to the next?
– Orophix
Feb 7 at 6:12
Awesome, very close to what I need. The pictures are scrolling through at the moment is there a way to make the picture display for a certain period of time before moving to the next?
– Orophix
Feb 7 at 6:12
Set
framerate
value to reciprocal of frame duration i.e. for 5 seconds per frame, 1/5
Then add fps=15
before the drawtext.– Gyan
Feb 7 at 6:37
Set
framerate
value to reciprocal of frame duration i.e. for 5 seconds per frame, 1/5
Then add fps=15
before the drawtext.– Gyan
Feb 7 at 6:37
add a comment |
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1398619%2fslideshow-background-on-ffmpeg-for-streaming%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
What happens when you run this code?
– Twisty Impersonator
Jan 26 at 1:09
It streams to YouTube and plays the GIF in a loop. I want to move from using a GIF to a slideshow of images that loop.
– Orophix
Jan 26 at 1:30
What have you tried? Please do not only respond in the comments. Instead, edit the post with this information.
– Twisty Impersonator
Jan 26 at 1:48