
Recherche avancée
Autres articles (36)
-
Supporting all media types
13 avril 2011, parUnlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)
-
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...) -
De l’upload à la vidéo finale [version standalone]
31 janvier 2010, parLe chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
Upload et récupération d’informations de la vidéo source
Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)
Sur d’autres sites (3498)
-
AttributeError : 'FilterableStream' object has no attribute 'input' - ffmpeg-python
26 septembre 2024, par KarolekI am a fresh programmer and I am learning the Python language.
I have been trying to design a graphical application (using tkinter and ffmpeg-python libraries) that converts an image file along with audio into a video of audio length displaying the image. Unfortunately whenever I try run program I keep encountering errors


At first it was due to installing the ffmpeg library in pip package manager instead of ffmpeg-python. I uninstalled the previous one, installing the correct one making sure no other package causes problems. Using a short script like this, the library functioned smoothly :


'''
The Error causing Statement
import ffmpeg 
(
 ffmpeg.input("something.mp3")
 .output("output.wav")
 .run()
)
'''
# When I tried to use the ffmpeg library in a graphics program within a function, unfortunately I was not able to get it to work

import tkinter as tk
from tkinter import filedialog
from tkinter import ttk

def select_image():
 file_path = filedialog.askopenfilename(title="Select a file", filetypes=[("image files","*.jpg;*.png;*.gif;*.jfif;")])
 print("Selected file:", file_path)

def select_audio():
 file_path = filedialog.askopenfilename(title="Select a file", filetypes=[("audio files","*.mp3;*.wav;*.ogg;*.flac;*.m4a;*.acc;")])
 print("Selected file:", file_path)

def create_video(image_file, audio_file, output_format):
 import ffmpeg
 (
 ffmpeg.input(image_file, loop=1)
 .input(audio_file)
 .output("output" + output_format)
 .run()
 ) 

def choose_directory():
 directory_path = filedialog.askdirectory(title="Select directory")
 print("Selected directory:", directory_path)


root = tk.Tk()

root.title("Audio To Video Converter")
root.geometry("500x700")

title = tk.Label(root, text="Audio To Video Converter", font=('Arial', 28))
title.pack(padx=20, pady=20)

selectImage_button = tk.Button(root, text="Select image", command=select_image, height=3, width=50)
selectImage_button.pack(pady=10, padx=20)
selectAudio_button = tk.Button(root, text="Select audio", command=select_audio, height=3, width=50)
selectAudio_button.pack(pady=10, padx=20)

label1 = tk.Label(root, text="Output video format", font=('Arial', 16))
label1.pack(padx=20, pady=10)

outputFormat = ttk.Combobox(root, width=55)
outputFormat['values'] = ('.avi', '.mkv', '.mp4', '.webm')
outputFormat['state'] = 'readonly'
outputFormat.pack(pady=5, padx=20)

label2 = tk.Label(root, text="Output directory", font=('Arial', 16))
label2.pack(padx=20, pady=10)

outputDirectory_button = tk.Button(root, text="Select directory", command=choose_directory, height=3, width=50)
outputDirectory_button.pack(pady=5, padx=60)


convert_button = tk.Button(root, text="Convert", height=3, width=50, command=create_video(selectImage_button, selectAudio_button, outputFormat['values'] ))

root.mainloop()



This is the only thing the console displayed after attempting to run


Traceback (most recent call last):
 File "c:\Users\Admin\Documents\konwerter\konwerter.py", line 56, in <module>
 convert_button = tk.Button(root, text="Convert", height=3, width=50, command=create_video(selectImage_button, selectAudio_button, outputFormat['values'] ))
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "c:\Users\Admin\Documents\konwerter\konwerter.py", line 17, in create_video
 .input(audio_file)
 ^^^^^
AttributeError: 'FilterableStream' object has no attribute 'input'
</module>


I did some research and did not find any information about this error except that it may be due to installing the wrong libraries. This is my list of installed libraries in pip package manager :


colored 2.2.4 customtkinter 5.2.2 darkdetect 0.8.0 ffmpeg-python 0.2.0 future 1.0.0 Gooey 1.0.8.1 packaging 24.1 pillow 10.4.0 pip 24.2 psutil 6.0.0 pyee 12.0.0 pygtrie 2.5.0 six 1.16.0 tkinterdnd2 0.4.2 typing_extensions 4.12.2 wxPython 4.2.2



Perhaps the solution to the problem is simple, but I am new and don't understand many things. I will be very grateful for your answer !


-
Understanding User Flow : Eight Practical Examples for Better UX
4 octobre 2024, par Daniel Crough — Analytics Tips, UX -
Stream H264 raw data on RTSP server
1er janvier, par AitazazI have H264 hex string data saved in a list.
The data is in correct format as it is being received, I am trying to stream it to RTSP server.


I have stream the data in realtime as it is from a dashcam.


The RTSP server is deployed but when I stream frames to it, the connection is created and then ends in an instant (does not last for a second)


The code is mentioned below which performs this streaming task.


def h264_stream_to_rtsp(data_list, rtsp_url):
 try:
 ffmpeg_command = [
 "ffmpeg", 
 "-f", "h264",
 "-i", "-",
 "-vcodec", "libx264",
 "-preset", "fast",
 "-f", "rtsp",
 "-analyzeduration", "5000000",
 "-probesize", "5000000", 
 rtsp_url # The RTSP URL to stream to
 ]
 
 ffmpeg_process = subprocess.Popen(ffmpeg_command, stdin=subprocess.PIPE)

 for index, hex_data in enumerate(data_list):
 # print(f"Processing hex data {index + 1}/{len(data_list)}...")

 if len(hex_data) % 2 != 0:
 hex_data = '0' + hex_data # Append a leading zero if length is odd

 binary_data = binascii.unhexlify(hex_data)

 ffmpeg_process.stdin.write(binary_data)

 ffmpeg_process.stdin.close()

 ffmpeg_process.wait()
 print("Stream completed.")

 except KeyboardInterrupt:
 print("Stopping live stream.")
 except Exception as e:
 print(f"Error: {e}")



Logs from the RTSP server are mentioned below :


2025/01/01 10:56:04 INF [RTSP] [conn 20.174.9.78:35474] opened
2025/01/01 10:56:04 INF [RTSP] [session 1d2bb871] created by 20.174.9.78:35474
2025/01/01 10:56:04 INF [RTSP] [session 1d2bb871] is publishing to path 'live', 1 track (H264)
2025/01/01 10:56:04 INF [RTSP] [session 1d2bb871] destroyed: torn down by 20.174.9.78:35474
2025/01/01 10:56:04 INF [RTSP] [conn 20.174.9.78:35474] closed: EOF
2025/01/01 10:56:48 INF [RTSP] [conn 20.174.9.78:54448] opened
2025/01/01 10:56:48 INF [RTSP] [session b6a95e71] created by 20.174.9.78:54448
2025/01/01 10:56:48 INF [RTSP] [session b6a95e71] is publishing to path 'live', 1 track (H264)
2025/01/01 10:56:48 INF [RTSP] [session b6a95e71] destroyed: torn down by 20.174.9.78:54448



How can I stream continuously ?