
Recherche avancée
Autres articles (58)
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Use, discuss, criticize
13 avril 2011, parTalk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
A discussion list is available for all exchanges between users. -
Le plugin : Podcasts.
14 juillet 2010, parLe problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
Types de fichiers supportés dans les flux
Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...)
Sur d’autres sites (8073)
-
How can I output every other TS packet (of an MPEG Transport Stream file), into one output file, using FFMPEG ?
9 août 2022, par mustardCutterI want to copy every other MPEG transport stream packet (PID# 00000000 [I'm guessing this is the first #], 00000002, 00000004...), from one MPEG transport stream file, into one output file, and the other ones (PID# 00000001, 00000003, 00000005...) into another output file. The output files don't have to be MPEG transport stream files ; they could be PCM, etc. Each packet could perhaps be referenced by stream id (PID #) or by Bytes, as each one is 188 Bytes, except perhaps the last packet.


I'd prefer to not use HLS or sequence muxer or concat if they require that I separate all the TS packets from one TS file into a folder first (as that would make many thousands of them), and I'd rather not deal with log or text or playlist files if I don't have to do so. I can't rename the PIDs, as their naming should remain what it is for a later step. I can't glob since it isn't an image file, though if I have to, perhaps I can read it in as if it's an image file sequence and glob so as to group the odd PID #s as an 'odds' input and glob to group the even PID #s as an 'evens' input. I don't think I can use '%08d' on the input as a stream id, because what I'm doing to each packet differs from what I'm doing with the previous packet, as to its destination output file. Perhaps there is some solution using some loop, complex function, counter, or perhaps preferably some 'if' statement, though I'd like it to be done in FFMPEG rather than by the OS using some terminal trickery. I don't know if you can use '|' (backslash pipe) to pipe within FFMPEG (or to execute multiple FFMPEG commands sequentially) independent of the OS/terminal trickery ; (I'm guessing '&&' doesn't work within FFMPEG commands independent of the OS/terminal).


In case it is helpful to know, the TS file is created from an MP4, so perhaps there is some way to transmux so that the packets are getting created in the end sequence needed and then renamed to what they would be if I had just transmuxed from MP4 to TS (though technically I'm transcoding audio [1 or 2 channels] from AAC to AC3 in the transmux step, but the video is h.264 and just copied into the TS file).


-
Unable to extract KLV data from .mpg file
2 novembre 2023, par Arjun ShastryI need to extract the klv data embedded in the following file :
https://samples.ffmpeg.org/MPEG2/mpegts-klv/Day%20Flight.mpg


Currently, I am doing it using ffmpeg and python.
The code works for .ts files like the example given below, but not the above mpg file. :
https://www.arcgis.com/home/item.html?id=55ec6f32d5e342fcbfba376ca2cc409a


I used the following python command, using subprocess, ffmpeg to extract klv data in a binary file and then using klvdata library to tranlate to a readable text file.


#Extract klv data and output as binary file
command=['ffmpeg', '-i', input_video, '-map', 'd','-codec','copy','-f', 'data','out.bin']
process=subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = process.communicate()

print(stdout)
print(stderr)

#Open text file to write json data
outjson=open("./outjson.txt","w")
print("Flag 1")

# Open the out.bin file for reading as binary
with open("./out.bin", "rb") as f:
 sample=[]
 cnt=0
 for packet in klvdata.streamparser.StreamParser(f):
 pack=[]
 metadata = packet.MetadataList()
 for i in (5,6,7,13,14,15,18,19,23,24,25,26,27,28,29,30,31,32,33):#Only extracting required data
 pack.append(metadata[i][-1])
 sample.append(pack)
 sampleLength=(len(sample))
 json.dump(sample,outjson,indent=4) # Convert the metadata to a string and write it to outtext.txt



When doing it for "Day Flight.mpg", the following error occurs :


58. 19.100 / 58. 19.100\r\n libavcodec 60. 26.100 / 60. 26.100\r\n libavformat 60. 11.100 / 60. 11.100\r\n libavdevice 60. 2.101 / 60. 2.101\r\n libavfilter 9. 11.100 / 9. 11.100\r\n libswscale 7. 3.100 / 7. 3.100\r\n libswresample 4. 11.100 / 4. 11.100\r\n libpostproc 57. 2.100 / 57. 2.100\r\n[mpegts @ 0000026bb99387c0] start time for stream 1 is not set in estimate_timings_from_pts\r\nInput #0, mpegts, from 'C:/Users/ashastry/Downloads/Day Flight.mpg':\r\n Duration: 00:03:14.88, start: 10.000000, bitrate: 4187 kb/s\r\n Program 1 \r\n Stream #0:0[0x1e1]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1280x720, 60 fps, 60 tbr, 90k tbn\r\n Stream #0:1[0x1f1]: Data: klv (KLVA / 0x41564C4B)\r\nOutput #0, data, to 'out.bin':\r\n Metadata:\r\n encoder : Lavf60.11.100\r\n Stream #0:0: Data: klv (KLVA / 0x41564C4B)\r\nStream mapping:\r\n Stream #0:1 -> #0:0 (copy)\r\nPress [q] to stop, [?] for help\r\nsize= 0kB time=00:00:00.00 bitrate=N/A speed=N/A \rsize= 0kB time=00:00:00.00 bitrate=N/A speed= 0x \rsize= 1kB time=00:00:00.00 bitrate=N/A speed= 0x \r[out#0/data @ 0000026bbb61b300] video:0kB audio:0kB subtitle:0kB other streams:1kB global headers:0kB muxing overhead: 0.000000%\r\nsize= 1kB time=00:00:00.00 bitrate=N/A speed= 0x \r\n"
Flag 1
Traceback (most recent call last):

 File C:\ProgramData\anaconda3\Lib\site-packages\spyder_kernels\py3compat.py:356 in compat_exec
 exec(code, globals, locals)

 File c:\users\ashastry\desktop\gis\javascript\extract.py:34
 metadata = packet.MetadataList()

AttributeError: 'UnknownElement' object has no attribute 'MetadataList'



-
Invalid argument error in writing video file using moviepy and ffmpeg
28 janvier 2024, par KresrebI have this code that used to work fine and now isn't. I have this error :


Traceback (most recent call last):
 File "D:\videos\tiktoks\faitsasavoir\bot\mre.py", line 18, in <module>
 clip_final.write_videofile(f"rendus_finaux/output.mp4", fps=24)
 File "", line 2, in write_videofile
 File "C:\Users\Brice\AppData\Local\Programs\Python\Python39\lib\site-packages\moviepy\decorators.py", line 54, in requires_duration
 return f(clip, *a, **k)
 File "", line 2, in write_videofile
 File "C:\Users\Brice\AppData\Local\Programs\Python\Python39\lib\site-packages\moviepy\decorators.py", line 135, in use_clip_fps_by_default
 return f(clip, *new_a, **new_kw)
 File "", line 2, in write_videofile
 File "C:\Users\Brice\AppData\Local\Programs\Python\Python39\lib\site-packages\moviepy\decorators.py", line 22, in convert_masks_to_RGB
 return f(clip, *a, **k)
 File "C:\Users\Brice\AppData\Local\Programs\Python\Python39\lib\site-packages\moviepy\video\VideoClip.py", line 300, in write_videofile
 ffmpeg_write_video(self, filename, fps, codec,
 File "C:\Users\Brice\AppData\Local\Programs\Python\Python39\lib\site-packages\moviepy\video\io\ffmpeg_writer.py", line 228, in ffmpeg_write_video
 writer.write_frame(frame)
 File "C:\Users\Brice\AppData\Local\Programs\Python\Python39\lib\site-packages\moviepy\video\io\ffmpeg_writer.py", line 180, in write_frame
 raise IOError(error)
OSError: [Errno 22] Invalid argument

MoviePy error: FFMPEG encountered the following error while writing file rendus_finaux/output.mp4:

 b'rendus_finaux/output.mp4: No such file or directory\r\n'
</module>


It tried different versions of
moviepy
, Python and reinstallingffmpeg
etc, but couldn't solve it. My main idea is that is a version problem, but i can't find out.

I recreated the error with this mre, it's just a code to make a video from multiple images. Thank you for your help.


from moviepy.editor import ImageClip, CompositeVideoClip, concatenate_videoclips
 
 DURATION_PER_IMAGE = 5
 
 images = ["D:/videos/image1.png","D:/videos/image1.jpg"]
 
 clips = []
 for image in images:
 #Main image
 clip = ImageClip(image).set_duration(DURATION_PER_IMAGE).resize(width=1080)
 clip = clip.resize(lambda t : 1+0.02*t)
 
 #Create clip composite
 clip_composite = CompositeVideoClip([clip.set_position("center")], size=(1080,1920))
 clips.append(clip_composite) # Add created clip to the list of clips
 
 clip_final = concatenate_videoclips(clips)
 clip_final.write_videofile(f"rendus_finaux/output.mp4", fps=24)