
Recherche avancée
Médias (91)
-
Corona Radiata
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Lights in the Sky
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Head Down
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Echoplex
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Discipline
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Letting You
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
Autres articles (103)
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
Creating farms of unique websites
13 avril 2011, parMediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...) -
Contribute to a better visual interface
13 avril 2011MediaSPIP is based on a system of themes and templates. Templates define the placement of information on the page, and can be adapted to a wide range of uses. Themes define the overall graphic appearance of the site.
Anyone can submit a new graphic theme or template and make it available to the MediaSPIP community.
Sur d’autres sites (7748)
-
Continuous RTMP Streaming with FFmpeg Without Restarting the Process for New Videos
3 avril 2024, par 刘小佳I'm facing a challenge with my workflow and would appreciate any guidance or solutions you might have. My business scenario involves a service that periodically generates new video files locally (e.g., 1.mp4, 2.mp4, ...). These files are then streamed to an RTMP server using FFmpeg, and clients pull the stream via HTTP-FLV for playback.


My goal is to ensure continuous streaming between video files without restarting the FFmpeg process each time a new video is ready to be streamed. Restarting FFmpeg for each new file introduces a disconnect in the client playback, which I'm trying to avoid to maintain stream continuity.


I've explored several approaches based on the FFmpeg Concatenate wiki (https://trac.ffmpeg.org/wiki/Concatenate), but haven't achieved the desired outcome :

Approach 1 :

Using a list.txt file with ffconcat version 1.0 and dynamically updating the file (next.mp4) being played :

ffconcat version 1.0
file next.mp4
file next.mp4



And then streaming with :

ffmpeg -re -stream_loop -1 -f concat -i list.txt -flush_packets 0 -f flv rtmp://xxx

However, when attempting to replace next.mp4 (e.g., moving 2.mp4 to next.mp4 during the streaming of 1.mp4), I encountered a "device busy" error.

Approach 2 :

Using a nested list approach where list1.txt includes 1.mp4 and list2.txt, and vice versa :

// list1.txt
ffconcat version 1.0
file '1.mp4'
file 'list2.txt'
// list2.txt
ffconcat version 1.0
file '2.mp4'
file 'list1.txt'



Streaming with :
ffmpeg -re -stream_loop -1 -f concat -i list1.txt -flush_packets 0 -f flv rtmp://xxx

In this setup, I tried modifying list1.txt to replace 1.mp4 with 3.mp4 during the streaming of 2.mp4, but FFmpeg would loop back to 1.mp4 and 2.mp4 before streaming 3.mp4 in the next cycle.

Am I missing something in my methods ? Does anyone have a better approach to fulfill this requirement ? Any help would be greatly appreciated !


-
Adding HEVC reference decoder to ffmpeg framework
4 mars 2014, par ZaxI have a tweaked HM reference code of HEVC Decoder based on my requirements. I also know that
FFMPEG version 2.1
onwards supports HEVC. But its a necessity for me to integrate my modified HM code.Hence I have gone through the post :
http://wiki.multimedia.cx/index.php?title=FFmpeg_codec_howto
According to this post, I need to define some functions that are needed to add a new decoder support to FFMPEG framework.
The structure is :
typedef struct AVCodec
I have defined a structure as shown below :
AVCodec HMHEVC_decoder =
{
.name = "hmhevc",
.type = AVMEDIA_TYPE_VIDEO,
.id = AV_CODEC_ID_HMHEVC,
.init = hmhevc_decode_init,
.close = hmhevc_decode_close,
.decode = hmhevc_decode_frame,
};However, looking at the other examples, I feel I have to add another variable like :
.priv_data_size = sizeof(HEVCContext),
But the problem is that I don't have any such context. So in case I don't define this, what are the things that FFMPEG framework wont provide my decoder ?
Also is definition of this private data context compulsary ?
What are the other fields that have to be compulsorily defined ?
My main intention is that
FFPLAY
should be able to play the decoded frame. -
ffmpeg concatenate two videos, unexpectedly changes the first second(s) of 2nd video
29 juin 2019, par RoyI used ffmpeg to concatenate two videos of my game play recordings. I wrote a
list.txt
file which lists the two files :list.txt:
file 2019~06~28_~_Game_1_~_Part_2.mp4
file 2019~06~28_~_Game_1_~_Part_3.mp4I then run ffmpeg to concat them :
ffmpeg -safe 0 -f concat -i list.txt -c copy "output.mp4"
However, the resulting video seems to be skipping frames (or going through them really quickly) at the first second(s) of the second video, causing the perception of the motion suddenly fast-forwarded.
The two videos were recorded by the same game video recorder "GeForce Experience" in one game session. They should match smoothly when concatenated.
Here is the output of ffmpeg :
ffmpeg version 3.4.1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 7.2.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth --enable-libmfx
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001600bbdb5e0] Auto-inserting h264_mp4toannexb bitstream filter
Input #0, concat, from 'list.txt':
Duration: N/A, start: 0.000000, bitrate: 24674 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt470m), 1920x1080 [SAR 1:1 DAR 16:9], 24479 kb/s, 59.69 fps, 60 tbr, 90k tbn, 120 tbc
Metadata:
creation_time : 2019-06-29T04:43:18.000000Z
handler_name : VideoHandle
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 195 kb/s
Metadata:
creation_time : 2019-06-29T04:43:18.000000Z
handler_name : SoundHandle
File 'output.mp4' already exists. Overwrite ? [y/N] y
Output #0, mp4, to 'output.mp4':
Metadata:
encoder : Lavf57.83.100
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt470m), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 24479 kb/s, 59.69 fps, 60 tbr, 90k tbn, 90k tbc
Metadata:
creation_time : 2019-06-29T04:43:18.000000Z
handler_name : VideoHandle
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 195 kb/s
Metadata:
creation_time : 2019-06-29T04:43:18.000000Z
handler_name : SoundHandle
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001600bbdb5e0] Auto-inserting h264_mp4toannexb bitstream filter
frame= 7405 fps=0.0 q=-1.0 Lsize= 221175kB time=00:02:03.63 bitrate=14655.4kbits/s speed= 157x
video:218137kB audio:2862kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.079741%In particular, I don’t know what does "Auto-inserting h254_mp4toannexb bitstream filter" mean. Did this caused the unexpected change ?